{"id":29126,"name":"fastjsonschema","ecosystem":"pip","repository_url":"https://github.com/horejsek/python-fastjsonschema","issues_count":89,"created_at":"2025-06-07T06:01:45.233Z","updated_at":"2025-06-07T06:01:45.233Z","purl":"pkg:pypi/fastjsonschema","metadata":{"id":2730824,"name":"fastjsonschema","ecosystem":"pypi","description":"Fastest Python implementation of JSON schema","homepage":"https://github.com/horejsek/python-fastjsonschema","licenses":"BSD","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/horejsek/python-fastjsonschema","keywords_array":[],"namespace":null,"versions_count":44,"first_release_published_at":"2016-10-05T11:48:36.000Z","latest_release_published_at":"2024-12-02T10:55:07.000Z","latest_release_number":"2.21.1","last_synced_at":"2025-06-07T08:31:06.082Z","created_at":"2022-04-10T10:58:02.698Z","updated_at":"2025-06-07T08:31:06.083Z","registry_url":"https://pypi.org/project/fastjsonschema/","install_command":"pip install fastjsonschema --index-url https://pypi.org/simple","documentation_url":"https://fastjsonschema.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: BSD License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.3","Programming Language :: Python :: 3.4","Programming Language :: Python :: 3.5","Programming Language :: Python :: 3.6","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Topic :: Software Development :: Libraries :: Python Modules"],"normalized_name":"fastjsonschema"},"repo_metadata":{"id":32977158,"uuid":"69604351","full_name":"horejsek/python-fastjsonschema","owner":"horejsek","description":"Fast JSON schema validator for Python.","archived":false,"fork":false,"pushed_at":"2024-06-16T17:47:00.000Z","size":1011,"stargazers_count":439,"open_issues_count":9,"forks_count":65,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-06-19T09:42:20.844Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://horejsek.github.io/python-fastjsonschema/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/horejsek.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.txt","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["horejsek"]}},"created_at":"2016-09-29T20:16:31.000Z","updated_at":"2024-06-19T09:42:24.806Z","dependencies_parsed_at":"2023-12-28T13:31:22.794Z","dependency_job_id":"b2861a18-c8d1-4ed0-80ed-9a9a3147af14","html_url":"https://github.com/horejsek/python-fastjsonschema","commit_stats":{"total_commits":255,"total_committers":29,"mean_commits":8.793103448275861,"dds":0.603921568627451,"last_synced_commit":"1df62460e8778e5d416b3f1413a3c11bd03f1bc5"},"previous_names":["seznam/python-fastjsonschema"],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/horejsek","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":215972410,"owners_count":15956855,"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":"horejsek","name":"Michal Hořejšek","uuid":"749088","kind":"user","description":"","email":"","website":"https://blog.horejsek.com","location":null,"twitter":"horejsek","company":null,"icon_url":"https://avatars.githubusercontent.com/u/749088?v=4","repositories_count":22,"last_synced_at":"2024-05-20T14:45:03.824Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/horejsek","funding_links":["https://github.com/sponsors/horejsek"],"total_stars":595,"followers":79,"following":2,"created_at":"2022-11-02T16:32:37.200Z","updated_at":"2024-05-20T14:45:04.958Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/horejsek","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/horejsek/repositories"},"tags":[{"name":"v2.20.0","sha":"d2fbc8ffb6579ca4e3d6f206965570b7c3906784","kind":"commit","published_at":"2024-06-15T13:26:27.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.20.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.20.0/manifests"},{"name":"v2.19.1","sha":"8f0b34a113c219676667aa38157981a136b8d31e","kind":"commit","published_at":"2023-12-28T12:12:24.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.19.1","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.19.1/manifests"},{"name":"v2.19.0","sha":"38e0116c3d3ccb50f8f6e9412d2caa99bb5ecd91","kind":"commit","published_at":"2023-11-14T20:03:05.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.19.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.19.0/manifests"},{"name":"v2.18.1","sha":"b0645bfdae940a2fef72868aeda98abec7dc6466","kind":"commit","published_at":"2023-10-01T07:58:55.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.18.1","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.18.1/manifests"},{"name":"v2.18.0","sha":"756540088687cda351390f687b92e602feaa7dc6","kind":"commit","published_at":"2023-07-22T18:29:18.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.18.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.18.0/manifests"},{"name":"v2.17.1","sha":"aa7be271c233278c43096ed0a401dcb3c4a12708","kind":"commit","published_at":"2023-05-22T05:51:05.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.17.1","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.17.1/manifests"},{"name":"v2.17.0","sha":"edcd9c8ffd7d3a37d8468ebda6a95d9868890deb","kind":"commit","published_at":"2023-05-21T06:10:20.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.17.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.17.0/manifests"},{"name":"v2.16.3","sha":"4f11540d2e8f7c0aeae1230cdbc65a99f1b277c4","kind":"commit","published_at":"2023-02-25T12:44:32.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.16.3","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.16.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.16.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.16.3/manifests"},{"name":"v2.16.2","sha":"1aad747bab39d4b1201ab99917463f4079955ecd","kind":"commit","published_at":"2022-08-10T16:07:20.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.16.2","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.16.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.16.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.16.2/manifests"},{"name":"v2.16.1","sha":"98399bb4029b2d7020d8abd9770661a5b2c4f9f8","kind":"commit","published_at":"2022-07-17T07:51:28.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.16.1","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.16.1/manifests"},{"name":"v2.16.0","sha":"41ff732ae610a3feafed84295e81fb5e84517cec","kind":"commit","published_at":"2022-07-17T07:44:27.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.16.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.16.0/manifests"},{"name":"v2.15.3","sha":"d03f3835da4899bdeb597a9d3f30a709e7c3254f","kind":"commit","published_at":"2022-01-09T08:43:50.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.15.3","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.15.3/manifests"},{"name":"v2.15.2","sha":"ce8603ba29b719d76afc4fb221328cc80b130b0b","kind":"commit","published_at":"2021-12-12T14:34:49.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.15.2","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.15.2/manifests"},{"name":"v2.15.1","sha":"1e214911fe83dbaeea3d50dfb3a539118de8a442","kind":"commit","published_at":"2021-05-05T13:59:34.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.15.1","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.15.1/manifests"},{"name":"v2.15.0","sha":"32476cfd4d97f92cae52d686eb471361503bf4ba","kind":"commit","published_at":"2021-02-01T17:57:06.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.15.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.15.0/manifests"},{"name":"v2.14.5","sha":"78ae1ae6b93bd1647bbed4e8fd8fb8cdd4252a01","kind":"commit","published_at":"2020-08-17T17:20:44.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.14.5","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.14.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.5/manifests"},{"name":"v2.14.4","sha":"8c8a05c76bd6a8a346dcd9185d95baab110a04c5","kind":"commit","published_at":"2020-03-19T08:09:24.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.14.4","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.14.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.4/manifests"},{"name":"v2.14.3","sha":"ead5ad508a7265803ee8dd69f21764d6231cb3cf","kind":"commit","published_at":"2020-02-27T08:11:03.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.14.3","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.14.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.3/manifests"},{"name":"v2.14.2","sha":"ba998abe175463db7482c5b89c9f032043ef67f2","kind":"commit","published_at":"2019-12-11T16:00:24.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.14.2","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.2/manifests"},{"name":"v2.14.1","sha":"c4d648ff847df5f20009b997dc896f4882a63a3c","kind":"commit","published_at":"2019-10-09T06:59:06.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.14.1","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.1/manifests"},{"name":"v2.14.0","sha":"83494f39bb54f5b4819a81dd3d348c6608ee6672","kind":"commit","published_at":"2019-10-08T17:41:27.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.14.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.14.0/manifests"},{"name":"v2.13","sha":"26187efaace40268ea924da9f18552fb090960c3","kind":"commit","published_at":"2019-06-10T09:04:43.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.13","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.13/manifests"},{"name":"v2.12","sha":"8e8133eeb7cc5382a2f020ca5c3d3e3d08f71c3b","kind":"commit","published_at":"2019-05-24T10:17:38.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.12","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.12/manifests"},{"name":"v2.11","sha":"8c38d0f91fa5d928ff629080cdb75ab23f96590f","kind":"commit","published_at":"2019-04-16T12:44:37.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.11","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.11/manifests"},{"name":"v2.10","sha":"b335a40745a9955fbf41c5c4778ea5274a42569d","kind":"commit","published_at":"2019-04-15T12:02:00.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.10","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.10/manifests"},{"name":"v2.9","sha":"0f7bd0e6d901e634e208295ec1bed315bf8ed9df","kind":"commit","published_at":"2019-03-04T09:30:45.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.9","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.9/manifests"},{"name":"v2.8","sha":"a185faafbfa4d102176f802ef03ab42db8fdf5db","kind":"commit","published_at":"2019-01-05T11:35:50.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.8","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.8/manifests"},{"name":"v2.7","sha":"05b0ee2cd6a497e711947787c1db358ba894266b","kind":"commit","published_at":"2018-11-16T11:24:27.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.7","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.7/manifests"},{"name":"v2.6","sha":"7b738b713fbc126ace5796927cfdfa918bddd79c","kind":"commit","published_at":"2018-11-01T13:16:33.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.6","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.6/manifests"},{"name":"v2.5","sha":"5a26a8a4631a80949b1b3fd35bcabbab1cf390b9","kind":"commit","published_at":"2018-10-22T13:15:14.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.5","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.5/manifests"},{"name":"v2.4","sha":"90c3d5202973aec77af57198092f0a34e4426310","kind":"commit","published_at":"2018-09-27T13:54:02.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.4","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.4/manifests"},{"name":"v2.3","sha":"3eb5b3a3beedc7d2f731871d48526644e4c1beb8","kind":"commit","published_at":"2018-09-14T15:01:57.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.3","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.3/manifests"},{"name":"v2.2","sha":"6c07d2300c5018628dab9487bd5a89b85acb3084","kind":"commit","published_at":"2018-09-12T12:43:33.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.2","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.2/manifests"},{"name":"v2.1","sha":"58cba3784555f06e6cb27e18b210b2defce391d4","kind":"commit","published_at":"2018-09-12T10:43:02.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.1","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.1/manifests"},{"name":"v2.0","sha":"831d48437d4bc06854d725d2ec5d9b98a6f5ee6d","kind":"commit","published_at":"2018-09-07T08:45:54.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v2.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v2.0/manifests"},{"name":"v1.6","sha":"37669b07b33057e09628814c275efbf382c3ad79","kind":"commit","published_at":"2018-06-21T17:19:52.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v1.6","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v1.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.6/manifests"},{"name":"v1.5","sha":"5cd9051e3592e8b1953df7d81035a52e6c34f10f","kind":"commit","published_at":"2018-06-20T16:23:46.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v1.5","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.5/manifests"},{"name":"v1.4","sha":"65e029a3b2302db1d3efd3eadc1e927fbd0d27ab","kind":"commit","published_at":"2018-06-11T08:33:05.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v1.4","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.4/manifests"},{"name":"v1.3","sha":"999506b02e23035d9b7e88f524b0c224100e5d6f","kind":"commit","published_at":"2018-04-25T12:34:40.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v1.3","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.3/manifests"},{"name":"v1.2","sha":"ffe222b8af19cf1ab7741bb07bc8f1687c178a50","kind":"commit","published_at":"2018-04-24T12:39:36.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v1.2","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.2/manifests"},{"name":"v1.1","sha":"5ea400be7cd7b1c9d7c0f9ad7ed1950817eb6e9f","kind":"commit","published_at":"2017-01-03T15:13:12.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v1.1","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.1/manifests"},{"name":"v1.0","sha":"a2a80dbe57b51ee6beb3005c8edb6725c68e5496","kind":"commit","published_at":"2016-09-30T08:21:32.000Z","download_url":"https://codeload.github.com/horejsek/python-fastjsonschema/tar.gz/v1.0","html_url":"https://github.com/horejsek/python-fastjsonschema/releases/tag/v1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horejsek%2Fpython-fastjsonschema/tags/v1.0/manifests"}]},"repo_metadata_updated_at":"2024-09-05T12:36:34.523Z","dependent_packages_count":168,"downloads":86851673,"downloads_period":"last-month","dependent_repos_count":9471,"rankings":{"downloads":0.0287964021004866,"dependent_repos_count":0.0882233720403443,"dependent_packages_count":0.151318673457971,"stargazers_count":3.9863758168915657,"forks_count":6.784395651559866,"docker_downloads_count":0.25715003659160646,"average":1.8827099921069734},"purl":"pkg:pypi/fastjsonschema","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/fastjsonschema","docker_dependents_count":2864,"docker_downloads_count":1059517068,"usage_url":"https://repos.ecosyste.ms/usage/pypi/fastjsonschema","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/fastjsonschema/dependencies","status":null,"funding_links":["https://github.com/sponsors/horejsek"],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/fastjsonschema/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/fastjsonschema/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/fastjsonschema/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/fastjsonschema/related_packages","maintainers":[{"uuid":"horejsek","login":"horejsek","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/horejsek/","role":null,"created_at":"2023-02-20T02:16:03.248Z","updated_at":"2023-02-20T02:16:03.248Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/horejsek/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690499,"maintainers_count":292846,"namespaces_count":0,"keywords_count":228675,"github":"pypi","metadata":{"funded_packages_count":48967},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-07T05:28:50.775Z","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":56,"unique_repositories_count_past_30_days":3,"recent_issues":[{"uuid":"3753432191","node_id":"PR_kwDOLufxkc66H2l_","number":109,"state":"open","title":"deps: bump fastjsonschema from 2.21.1 to 2.21.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-22T11:27:59.000Z","updated_at":"2025-12-22T11:28:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":null,"ecosystem":"pip"},"body":"Bumps [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) from 2.21.1 to 2.21.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fastjsonschema\u0026package-manager=pip\u0026previous-version=2.21.1\u0026new-version=2.21.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/OpenMS/pyopenms_viz/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMS%2Fpyopenms_viz/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"},{"uuid":"3705077254","node_id":"PR_kwDOLzgXB863nCne","number":623,"state":"closed","title":"Bump the allpip group across 1 directory with 79 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-09T09:28:56.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T07:45:59.000Z","updated_at":"2025-12-09T09:28:58.000Z","time_to_close":92577,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":79,"packages":[{"name":"fastapi","old_version":"0.121.0","new_version":"0.124.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"alembic","old_version":"1.16.5","new_version":"1.17.2","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.11.9","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.10.1","new_version":"2.12.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"uvicorn","old_version":"0.36.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"sqlalchemy","old_version":"2.0.43","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"minio","old_version":"7.2.16","new_version":"7.2.20","repository_url":"https://github.com/minio/minio-py"},{"name":"pytest-asyncio","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"coverage","old_version":"7.10.7","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"playwright","old_version":"1.55.0","new_version":"1.56.0","repository_url":"https://github.com/microsoft/playwright-python"},{"name":"pytest-playwright","old_version":"0.7.1","new_version":"0.7.2","repository_url":"https://github.com/microsoft/playwright-pytest"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.0.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"ruff","old_version":"0.13.1","new_version":"0.14.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.405","new_version":"1.1.407","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"annotated-doc","old_version":"0.0.3","new_version":"0.0.4","repository_url":"https://github.com/fastapi/annotated-doc"},{"name":"anyio","old_version":"4.8.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi","old_version":"23.1.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachecontrol","old_version":"0.14.1","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cryptography","old_version":"44.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"cssbeautifier","old_version":"1.15.1","new_version":"1.15.4","repository_url":"https://github.com/beautifier/js-beautify"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dulwich","old_version":"0.24.1","new_version":"0.24.10","repository_url":"https://github.com/dulwich/dulwich"},{"name":"editorconfig","old_version":"0.17.0","new_version":"0.17.1","repository_url":"https://github.com/editorconfig/editorconfig-core-py"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.16.1","new_version":"3.20.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"findpython","old_version":"0.6.2","new_version":"0.7.1","repository_url":"https://github.com/frostming/findpython"},{"name":"fsspec","old_version":"2024.12.0","new_version":"2025.12.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.1.1","new_version":"3.3.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"httptools","old_version":"0.6.4","new_version":"0.7.1","repository_url":"https://github.com/MagicStack/httptools"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.15","repository_url":"https://github.com/pre-commit/identify"},{"name":"idna","old_version":"3.10","new_version":"3.11","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":"jaraco-functools","old_version":"4.1.0","new_version":"4.3.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jeepney","old_version":"0.8.0","new_version":"0.9.0"},{"name":"jsbeautifier","old_version":"1.15.1","new_version":"1.15.4","repository_url":"https://github.com/ghost6991/Jsbeautifier"},{"name":"json5","old_version":"0.10.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"keyring","old_version":"25.6.0","new_version":"25.7.0","repository_url":"https://github.com/jaraco/keyring"},{"name":"mako","old_version":"1.3.8","new_version":"1.3.10","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":"more-itertools","old_version":"10.5.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pbs-installer","old_version":"2025.2.12","new_version":"2025.12.5","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"pkginfo","old_version":"1.12.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.1","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":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pycryptodome","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"rapidfuzz","old_version":"3.11.0","new_version":"3.14.3","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"regex","old_version":"2024.11.6","new_version":"2025.11.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"secretstorage","old_version":"3.3.3","new_version":"3.5.0","repository_url":"https://github.com/mitya57/secretstorage"},{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.1.6.15","new_version":"2025.12.1.14","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"validators","old_version":"0.34.0","new_version":"0.35.0","repository_url":"https://github.com/python-validators/validators"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.0.3","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"14.1","new_version":"15.0.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"1.17.0","new_version":"2.0.1","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"xattr","old_version":"1.1.4","new_version":"1.3.0","repository_url":"https://github.com/xattr/xattr"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 74 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.121.0` | `0.124.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.5` | `1.17.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.9` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.10.1` | `2.12.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.36.0` | `0.38.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.44` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [minio](https://github.com/minio/minio-py) | `7.2.16` | `7.2.20` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.2.0` | `1.3.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.12.0` |\n| [playwright](https://github.com/microsoft/playwright-python) | `1.55.0` | `1.56.0` |\n| [pytest-playwright](https://github.com/microsoft/playwright-pytest) | `0.7.1` | `0.7.2` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.1` | `0.14.8` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.405` | `1.1.407` |\n| [annotated-doc](https://github.com/fastapi/annotated-doc) | `0.0.3` | `0.0.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.8.0` | `4.12.0` |\n| [argon2-cffi](https://github.com/hynek/argon2-cffi) | `23.1.0` | `25.1.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.1` | `0.14.4` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.11.12` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.4` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.1` | `46.0.3` |\n| [cssbeautifier](https://github.com/beautifier/js-beautify) | `1.15.1` | `1.15.4` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `0.24.1` | `0.24.10` |\n| [editorconfig](https://github.com/editorconfig/editorconfig-core-py) | `0.17.0` | `0.17.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.20.0` |\n| [findpython](https://github.com/frostming/findpython) | `0.6.2` | `0.7.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2024.12.0` | `2025.12.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.1.1` | `3.3.0` |\n| [httptools](https://github.com/MagicStack/httptools) | `0.6.4` | `0.7.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.1.0` | `4.3.0` |\n| [jeepney](https://gitlab.com/takluyver/jeepney) | `0.8.0` | `0.9.0` |\n| [jsbeautifier](https://github.com/ghost6991/Jsbeautifier) | `1.15.1` | `1.15.4` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.10.0` | `0.12.1` |\n| [keyring](https://github.com/jaraco/keyring) | `25.6.0` | `25.7.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.8` | `1.3.10` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.5.0` | `10.8.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.1.2` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.2.12` | `2025.12.5` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.12.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.1` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.21.0` | `3.23.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.11.0` | `3.14.3` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.11.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [secretstorage](https://github.com/mitya57/secretstorage) | `3.3.3` | `3.5.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.50.0` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.1.6.15` | `2025.12.1.14` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [validators](https://github.com/python-validators/validators) | `0.34.0` | `0.35.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.3` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `14.1` | `15.0.1` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.0` | `2.0.1` |\n| [xattr](https://github.com/xattr/xattr) | `1.1.4` | `1.3.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n\n\nUpdates `fastapi` from 0.121.0 to 0.124.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.124.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸  Improve tracebacks by adding endpoint metadata. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14306\"\u003e#14306\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\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✏️ Fix typo in \u003ccode\u003escripts/mkdocs_hooks.py\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14457\"\u003e#14457\u003c/a\u003e by \u003ca href=\"https://github.com/yujiteshima\"\u003e\u003ccode\u003e@​yujiteshima\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.10\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix using class (not instance) dependency that has \u003ccode\u003e__call__\u003c/code\u003e method. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14458\"\u003e#14458\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eseparate_input_output_schemas=False\u003c/code\u003e with \u003ccode\u003ecomputed_field\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14453\"\u003e#14453\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.123.9\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix OAuth2 scopes in OpenAPI in extra corner cases, parent dependency with scopes, sub-dependency security scheme without scopes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14459\"\u003e#14459\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.123.8\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix OpenAPI security scheme OAuth2 scopes declaration, deduplicate security schemes with different scopes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14455\"\u003e#14455\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.123.7\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix evaluating stringified annotations in Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11355\"\u003e#11355\u003c/a\u003e by \u003ca href=\"https://github.com/chaen\"\u003e\u003ccode\u003e@​chaen\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.6\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for functools wraps and partial combined, for async and regular functions and classes in path operations and dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14448\"\u003e#14448\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.123.5\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Allow using dependables with \u003ccode\u003efunctools.partial()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9753\"\u003e#9753\u003c/a\u003e by \u003ca href=\"https://github.com/lieryan\"\u003e\u003ccode\u003e@​lieryan\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add support for wrapped functions (e.g. \u003ccode\u003e@functools.wraps()\u003c/code\u003e) used with forward references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/5077\"\u003e#5077\u003c/a\u003e by \u003ca href=\"https://github.com/lucaswiman\"\u003e\u003ccode\u003e@​lucaswiman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Handle wrapped dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9555\"\u003e#9555\u003c/a\u003e by \u003ca href=\"https://github.com/phy1729\"\u003e\u003ccode\u003e@​phy1729\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix optional sequence handling with new union syntax from Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14430\"\u003e#14430\u003c/a\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove dangling extra condiitonal no longer needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14435\"\u003e#14435\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♻️ Refactor internals, update \u003ccode\u003eis_coroutine\u003c/code\u003e check to reuse internal supported variants (unwrap, check class). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14434\"\u003e#14434\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b5ca13249e3f2002c70c3f2de528a128af2008f7\"\u003e\u003ccode\u003eb5ca132\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.124.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a2cef707e30fb6eb14812e4e273e34079d30ae6b\"\u003e\u003ccode\u003ea2cef70\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5b6245666b8a499d2551caff7567056ef7f881b2\"\u003e\u003ccode\u003e5b62456\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003escripts/mkdocs_hooks.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14457\"\u003e#14457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/dbd34f15789f4afa851e339cea4fcd49f421039d\"\u003e\u003ccode\u003edbd34f1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e1117f75505bbdb2d42321a009dbf26c9c2b8b6d\"\u003e\u003ccode\u003ee1117f7\u003c/code\u003e\u003c/a\u003e 🚸  Improve tracebacks by adding endpoint metadata (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14306\"\u003e#14306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/08b09e5236e315b6f10265ed229f130d4befb4ea\"\u003e\u003ccode\u003e08b09e5\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.123.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e7d7038dfa35fc923f20fd11a969d2e65e1b9df1\"\u003e\u003ccode\u003ee7d7038\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/da0ffab0b260475499294d3dc767409d7bca5c34\"\u003e\u003ccode\u003eda0ffab\u003c/code\u003e\u003c/a\u003e 🐛 Fix using class (not instance) dependency that has \u003ccode\u003e__call__\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14458\"\u003e#14458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/516169428d2fa189d34318ebc469a082c49c1189\"\u003e\u003ccode\u003e5161694\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/812a1926f06391b22b081fdb11fe7528e3b91293\"\u003e\u003ccode\u003e812a192\u003c/code\u003e\u003c/a\u003e 🐛 Fix \u003ccode\u003eseparate_input_output_schemas=False\u003c/code\u003e with \u003ccode\u003ecomputed_field\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14453\"\u003e#14453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.121.0...0.124.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.16.5 to 1.17.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.17.2\u003c/h1\u003e\n\u003cp\u003eReleased: November 14, 2025\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e Added \u003ccode\u003eOperations.implementation_for.replace\u003c/code\u003e parameter to\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e, allowing replacement of existing\noperation implementations.  This allows for existing operations such as\n\u003ccode\u003eCreateTableOp\u003c/code\u003e to be extended directly.  Pull request courtesy\njustanothercatgirl.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1750\"\u003e#1750\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mssql]\u003c/strong\u003e Fixed issue in SQL Server dialect where the DROP that's automatically\nemitted for existing default constraints during an ALTER COLUMN needs to\ntake place before not just the modification of the column's default, but\nalso before the column's type is changed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1744\"\u003e#1744\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.17.1\u003c/h1\u003e\n\u003cp\u003eReleased: October 28, 2025\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003ecommand.current.check_heads\u003c/code\u003e parameter to\n\u003ccode\u003ecommand.current()\u003c/code\u003e command, available from the command line via the\n\u003ccode\u003e--check-heads\u003c/code\u003e option to \u003ccode\u003ealembic current\u003c/code\u003e.  This tests if all head\nrevisions are applied to the database and raises \u003ccode\u003eDatabaseNotAtHead\u003c/code\u003e\n(or from the command line, exits with a non-zero exit code) if this is not\nthe case.  The parameter operates equvialently to the cookbook recipe\n\u003ccode\u003ecookbook_check_heads\u003c/code\u003e. Pull request courtesy Stefan Scherfke.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1705\"\u003e#1705\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[bug] [commands]\u003c/strong\u003e Disallow ':' character in custom revision identifiers. Previously, using a\ncolon in a revision ID (e.g., 'REV:1') would create the revision, however\nrevisions with colons in them are not correctly interpreted by other\ncommands, as it overlaps with the revision range syntax.   Pull request\ncourtesy Kim Wooseok with original implementation by Hrushikesh Patil.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.9 to 2.12.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.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes 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/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required 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/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes 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/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required 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/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.9...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.10.1 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip non-explicit default values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/692\"\u003epydantic/pydantic-settings#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCoerce env vars if strict is True. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/693\"\u003epydantic/pydantic-settings#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore init kwarg names before returning final state dictionary. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/700\"\u003epydantic/pydantic-settings#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python3.9 support by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/699\"\u003epydantic/pydantic-settings#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt test_protected_namespace_defaults for dev. Pydantic by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/637\"\u003epydantic/pydantic-settings#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/704\"\u003epydantic/pydantic-settings#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.12 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/705\"\u003epydantic/pydantic-settings#705\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/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\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-settings/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\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/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/584983d253a0fac4dfb294d1e6f9ef188add468b\"\u003e\u003ccode\u003e584983d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6b4d87e77698476433031c0056ce71aa4f4a7c4e\"\u003e\u003ccode\u003e6b4d87e\u003c/code\u003e\u003c/a\u003e Add Python 3.14 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/02de5b622b8648404aa792df01599aa1179c3aa7\"\u003e\u003ccode\u003e02de5b6\u003c/code\u003e\u003c/a\u003e Adapt test_protected_namespace_defaults for dev. Pydantic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4239ea460a5c465a4ce908c52e9606549b38fa98\"\u003e\u003ccode\u003e4239ea4\u003c/code\u003e\u003c/a\u003e Drop Python3.9 support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/699\"\u003e#699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5008c694f684f88fd310f476871ec021426e98d7\"\u003e\u003ccode\u003e5008c69\u003c/code\u003e\u003c/a\u003e Restore init kwarg names before returning final state dictionary. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4433101fef6770d3fc0844846f7f3837bfec3b10\"\u003e\u003ccode\u003e4433101\u003c/code\u003e\u003c/a\u003e Coerce env vars if strict is True. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4d2ebfd543e6011f6b71a99042007adf7e613ae9\"\u003e\u003ccode\u003e4d2ebfd\u003c/code\u003e\u003c/a\u003e Strip non-explicit default values. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4a6ffcaeae451199b1873c6709b28aceae7317a7\"\u003e\u003ccode\u003e4a6ffca\u003c/code\u003e\u003c/a\u003e Add NestedSecretsSettings source (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7a6e96ebfc89ddb5b20dfb068c8ed46b6ff18a7f\"\u003e\u003ccode\u003e7a6e96e\u003c/code\u003e\u003c/a\u003e Apply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/68563eddc09856b94ea0ca156dd75040b4e048e4\"\u003e\u003ccode\u003e68563ed\u003c/code\u003e\u003c/a\u003e Support for enum kebab case. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.36.0 to 0.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\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.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\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.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.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's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\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/3850ad6520cafb290bd4174fa9c4ca5d33440c82\"\u003e\u003ccode\u003e3850ad6\u003c/code\u003e\u003c/a\u003e Version 0.38.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b3f17a549ec96f57bf4d975145fc58feefdd4e8\"\u003e\u003ccode\u003e9b3f17a\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ce79f95d065c053b36449f67b3b2cefee5ecf167\"\u003e\u003ccode\u003ece79f95\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dbf8797b47c79da542f530f2143b8e851e2388fd\"\u003e\u003ccode\u003edbf8797\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2728\"\u003e#2728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/58f28be98eb95c8cf25905df10997b4af81c23e3\"\u003e\u003ccode\u003e58f28be\u003c/code\u003e\u003c/a\u003e Add section about event loop (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2725\"\u003e#2725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/93d95107490d5ea3693601388d7783c450058271\"\u003e\u003ccode\u003e93d9510\u003c/code\u003e\u003c/a\u003e Bump docs dependencies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b1c6c45ed7fe8bd485ddad475f0feff03971af7\"\u003e\u003ccode\u003e9b1c6c4\u003c/code\u003e\u003c/a\u003e Move Marcelo Trylesinski to maintainers in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/57a61d86f2f123b1d35b9ff71e0f29d22d10806f\"\u003e\u003ccode\u003e57a61d8\u003c/code\u003e\u003c/a\u003e Add discord to README (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2718\"\u003e#2718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ef5f9f5e7e79887b4ab4214c15ab5a9ce63e193\"\u003e\u003ccode\u003e7ef5f9f\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6d26d88970379cbf20b4dbf4f70e27f191db4ede\"\u003e\u003ccode\u003e6d26d88\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for PEP639 compliance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2713\"\u003e#2713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.38.0\"\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 `click` from 8.3.0 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.0...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.43 to 2.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `minio` from 7.2.16 to 7.2.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/minio/minio-py/releases\"\u003eminio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBugfix Release 7.2.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable github CI run by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1543\"\u003eminio/minio-py#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake BaseException internals to be set (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1521\"\u003e#1521\u003c/a\u003e) by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1539\"\u003eminio/minio-py#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add missing type annotations to serialization dataclass fields (… by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1540\"\u003eminio/minio-py#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport optional parameters in LdapIdentityProvider (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1528\"\u003e#1528\u003c/a\u003e) by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1541\"\u003eminio/minio-py#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix object_size/headers in ComposeSource by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1545\"\u003eminio/minio-py#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix complete_multipart_upload() to support SSE-C by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1544\"\u003eminio/minio-py#1544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/minio/minio-py/compare/7.2.18...7.2.20\"\u003ehttps://github.com/minio/minio-py/compare/7.2.18...7.2.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugfix release 7.2.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd region, extra_headers and extra_query_params by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/623","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/623","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/623/packages"},{"uuid":"3704392014","node_id":"PR_kwDOO1bbZM63kwzP","number":34,"state":"closed","title":"chore(deps): bump the production-dependencies group across 1 directory with 73 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-15T02:26:50.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T02:32:25.000Z","updated_at":"2025-12-15T02:26:52.000Z","time_to_close":604465,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":73,"packages":[{"name":"ipykernel","old_version":"6.29.5","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.7","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"plotly","old_version":"6.1.2","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pypsa","old_version":"0.34.1","new_version":"1.0.5","repository_url":"https://github.com/PyPSA/PyPSA"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"bottleneck","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pydata/bottleneck"},{"name":"cdsapi","old_version":"0.7.6","new_version":"0.7.7","repository_url":"https://github.com/ecmwf/cdsapi"},{"name":"certifi","old_version":"2025.4.26","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cfgrib","old_version":"0.9.15.0","new_version":"0.9.15.1","repository_url":"https://github.com/ecmwf/cfgrib"},{"name":"cftime","old_version":"1.6.4.post1","new_version":"1.6.5","repository_url":"https://github.com/Unidata/cftime"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"cloudpickle","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/cloudpipe/cloudpickle"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"dask","old_version":"2025.5.1","new_version":"2025.11.0","repository_url":"https://github.com/dask/dask"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"eccodes","old_version":"2.42.0","new_version":"2.44.0","repository_url":"https://github.com/ecmwf/eccodes-python"},{"name":"ecmwf-datastores-client","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/ecmwf/ecmwf-datastores-client"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"findlibs","old_version":"0.1.1","new_version":"0.1.2","repository_url":"https://github.com/ecmwf/findlibs"},{"name":"fonttools","old_version":"4.58.1","new_version":"4.61.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2025.5.1","new_version":"2025.12.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geopandas","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/geopandas/geopandas"},{"name":"h5netcdf","old_version":"1.6.3","new_version":"1.7.3","repository_url":"https://github.com/h5netcdf/h5netcdf"},{"name":"h5py","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/h5py/h5py"},{"name":"highspy","old_version":"1.10.0","new_version":"1.12.0","repository_url":"https://github.com/ERGO-Code/HiGHS"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"ipython","old_version":"9.3.0","new_version":"9.8.0","repository_url":"https://github.com/ipython/ipython"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"linopy","old_version":"0.5.5","new_version":"0.5.8","repository_url":"https://github.com/PyPSA/linopy"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"multiurl","old_version":"0.3.6","new_version":"0.3.7","repository_url":"https://github.com/ecmwf/multiurl"},{"name":"narwhals","old_version":"1.41.0","new_version":"2.13.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"netcdf4","old_version":"1.7.2","new_version":"1.7.3","repository_url":"https://github.com/Unidata/netcdf4-python"},{"name":"networkx","old_version":"3.5","new_version":"3.6","repository_url":"https://github.com/networkx/networkx"},{"name":"numexpr","old_version":"2.10.2","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"numpy","old_version":"2.2.0","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pillow","old_version":"11.2.1","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"polars","old_version":"1.30.0","new_version":"1.35.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyogrio","old_version":"0.11.0","new_version":"0.12.1","repository_url":"https://github.com/geopandas/pyogrio"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytz","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"pyzmq","old_version":"26.4.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scipy","old_version":"1.15.3","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"toolz","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytoolz/toolz"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzdata","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xarray","old_version":"2025.4.0","new_version":"2025.12.0","repository_url":"https://github.com/pydata/xarray"},{"name":"zipp","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 73 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `7.1.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.7` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.1.2` | `6.5.0` |\n| [pypsa](https://github.com/PyPSA/PyPSA) | `0.34.1` | `1.0.5` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [bottleneck](https://github.com/pydata/bottleneck) | `1.5.0` | `1.6.0` |\n| [cdsapi](https://github.com/ecmwf/cdsapi) | `0.7.6` | `0.7.7` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.4.26` | `2025.11.12` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [cfgrib](https://github.com/ecmwf/cfgrib) | `0.9.15.0` | `0.9.15.1` |\n| [cftime](https://github.com/Unidata/cftime) | `1.6.4.post1` | `1.6.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [cloudpickle](https://github.com/cloudpipe/cloudpickle) | `3.1.1` | `3.1.2` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [dask](https://github.com/dask/dask) | `2025.5.1` | `2025.11.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [eccodes](https://github.com/ecmwf/eccodes-python) | `2.42.0` | `2.44.0` |\n| [ecmwf-datastores-client](https://github.com/ecmwf/ecmwf-datastores-client) | `0.2.0` | `0.4.1` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [findlibs](https://github.com/ecmwf/findlibs) | `0.1.1` | `0.1.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.1` | `4.61.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.5.1` | `2025.12.0` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.0` | `1.1.1` |\n| [h5netcdf](https://github.com/h5netcdf/h5netcdf) | `1.6.3` | `1.7.3` |\n| [h5py](https://github.com/h5py/h5py) | `3.14.0` | `3.15.1` |\n| [highspy](https://github.com/ERGO-Code/HiGHS) | `1.10.0` | `1.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [ipython](https://github.com/ipython/ipython) | `9.3.0` | `9.8.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [linopy](https://github.com/PyPSA/linopy) | `0.5.5` | `0.5.8` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [multiurl](https://github.com/ecmwf/multiurl) | `0.3.6` | `0.3.7` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `1.41.0` | `2.13.0` |\n| [netcdf4](https://github.com/Unidata/netcdf4-python) | `1.7.2` | `1.7.3` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.10.2` | `2.14.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.0` | `2.3.5` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [polars](https://github.com/pola-rs/polars) | `1.30.0` | `1.35.2` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyogrio](https://github.com/geopandas/pyogrio) | `0.11.0` | `0.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.7.1` | `3.7.2` |\n| [pytz](https://github.com/stub42/pytz) | `2024.2` | `2025.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `26.4.0` | `27.1.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.30.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.16.3` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [toolz](https://github.com/pytoolz/toolz) | `1.0.0` | `1.1.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [tzdata](https://github.com/python/tzdata) | `2024.2` | `2025.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [xarray](https://github.com/pydata/xarray) | `2025.4.0` | `2025.12.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.22.0` | `3.23.0` |\n\n\nUpdates `ipykernel` from 6.29.5 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/releases\"\u003eipykernel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using \u003ccode\u003e%notebook\u003c/code\u003e magic to save sessions as \u003ccode\u003e.ipynb\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e). This is enabled using the traitlet \u003ccode\u003eZMQDisplayPublisher.store_display_history\u003c/code\u003e which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.\u003c/p\u003e\n\u003cp\u003eOutput from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless \u003ccode\u003eget_ipython().set_parent()\u003c/code\u003e is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThis release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e), kernels launched in new threads failing asserts (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e), and \u003ccode\u003eContextVar\u003c/code\u003es persisting between cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e). There is also a fix for keyboard interrupts on Windows (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStore display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1435\"\u003e#1435\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix ContextVar persistence across cells \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1462\"\u003e#1462\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix matplotlib eventloops \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1458\"\u003e#1458\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefer to kernel launching thread instead of assuming the main thread \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1455\"\u003e#1455\u003c/a\u003e (\u003ca href=\"https://github.com/dfalbel\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix routing of background thread output when no parent is set explicitly \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1451\"\u003e#1451\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KeyboardInterrupt on Windows by manually resetting interrupt event \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1434\"\u003e#1434\u003c/a\u003e (\u003ca href=\"https://github.com/ptosco\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate pre-commit and related \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1465\"\u003e#1465\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest that matplotlib event loop integration is responsive \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1463\"\u003e#1463\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests for 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1453\"\u003e#1453\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14\u0026amp;to=2025-10-27\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​lumberbot-app\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.0.1 is a bug fix release to support CPython 3.14.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid overriding Thread._context in Python 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1447\"\u003e#1447\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md\"\u003eipykernel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using \u003ccode\u003e%notebook\u003c/code\u003e magic to save sessions as \u003ccode\u003e.ipynb\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e). This is enabled using the traitlet \u003ccode\u003eZMQDisplayPublisher.store_display_history\u003c/code\u003e which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.\u003c/p\u003e\n\u003cp\u003eOutput from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless \u003ccode\u003eget_ipython().set_parent()\u003c/code\u003e is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThis release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e), kernels launched in new threads failing asserts (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e), and \u003ccode\u003eContextVar\u003c/code\u003es persisting between cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e). There is also a fix for keyboard interrupts on Windows (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStore display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1435\"\u003e#1435\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix ContextVar persistence across cells \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1462\"\u003e#1462\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix matplotlib eventloops \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1458\"\u003e#1458\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefer to kernel launching thread instead of assuming the main thread \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1455\"\u003e#1455\u003c/a\u003e (\u003ca href=\"https://github.com/dfalbel\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix routing of background thread output when no parent is set explicitly \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1451\"\u003e#1451\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KeyboardInterrupt on Windows by manually resetting interrupt event \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1434\"\u003e#1434\u003c/a\u003e (\u003ca href=\"https://github.com/ptosco\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate pre-commit and related \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1465\"\u003e#1465\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest that matplotlib event loop integration is responsive \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1463\"\u003e#1463\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests for 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1453\"\u003e#1453\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14\u0026amp;to=2025-10-27\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​lumberbot-app\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.0.1 is a bug fix release to support CPython 3.14.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid overriding Thread._context in Python 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1447\"\u003e#1447\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix 7.x license warnings \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1448\"\u003e#1448\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Test on PyPy 3.11 instead of 3.10 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1444\"\u003e#1444\u003c/a\u003e (\u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\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/ipython/ipykernel/commit/39eaf96ab6db0d0ff9ad269831384c53a11e11d8\"\u003e\u003ccode\u003e39eaf96\u003c/code\u003e\u003c/a\u003e Publish 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003e\u003ccode\u003e6f61a68\u003c/code\u003e\u003c/a\u003e test that matplotlib event loop integration is responsive (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1463\"\u003e#1463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/8446e02948c390793e129affeceedfa30ed5080f\"\u003e\u003ccode\u003e8446e02\u003c/code\u003e\u003c/a\u003e Fix KeyboardInterrupt on Windows by manually resetting interrupt event (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/dd1e09484854c8dedcd98436bc01b6b8e1cc9034\"\u003e\u003ccode\u003edd1e094\u003c/code\u003e\u003c/a\u003e update pre-commit and related (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1465\"\u003e#1465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/95f245138589db4f723b8af06107cdfeadc53314\"\u003e\u003ccode\u003e95f2451\u003c/code\u003e\u003c/a\u003e fix ContextVar persistence across cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/c56a7aab3cad1fb91f7e7185dc7403d561ecd667\"\u003e\u003ccode\u003ec56a7aa\u003c/code\u003e\u003c/a\u003e Fix matplotlib eventloops (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/c7af34cd19ebcd43f5aafe1919909feb6e898387\"\u003e\u003ccode\u003ec7af34c\u003c/code\u003e\u003c/a\u003e Refer to kernel laucnhing thread instead of assuming the main thread (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/7193d14de447a18470a18d60b81eda5f0048b6aa\"\u003e\u003ccode\u003e7193d14\u003c/code\u003e\u003c/a\u003e Fix routing of background thread output when no parent is set explicitly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/b8f5dfc3a35a658c66b85213e60f634bd8a44488\"\u003e\u003ccode\u003eb8f5dfc\u003c/code\u003e\u003c/a\u003e Store display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/93f11dbb02692a7922cb6fdb4ebadffdb8b691c0\"\u003e\u003ccode\u003e93f11db\u003c/code\u003e\u003c/a\u003e update tests for 3.14 (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipykernel/compare/v6.29.5...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.3 to 3.10.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.7\u003c/h2\u003e\n\u003cp\u003eThis is the latest bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe most important update in this release is that the minimum version\nof \u003ccode\u003epyparsing\u003c/code\u003e has been updated to version 3.0.\u003c/p\u003e\n\u003ch2\u003eREL: v3.10.6\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eHighlights from this release include:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix regression of hi-dpi support for Qt\n- Fix race condition in TexManager.make_dvi \u0026amp; make_png\n- Various documentation and other bugfixes\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eREL: v3.10.5\u003c/h2\u003e\n\u003cp\u003eThis is the fourth bugfix release of the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eIncluded in this release is distributed wheels for Python 3.14 (including freethreaded) and Windows ARM.\u003c/p\u003e\n\u003cp\u003eThere are also several smaller bugfixes.\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/matplotlib/matplotlib/commit/4aeb773422464799998d900198b35cb80e94b3e1\"\u003e\u003ccode\u003e4aeb773\u003c/code\u003e\u003c/a\u003e REL: v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/080add32f6b3c82075ccfb1111b21d5ff9e9c075\"\u003e\u003ccode\u003e080add3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.6-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a604a8beed19bdda1355a29a12ab2904367cf140\"\u003e\u003ccode\u003ea604a8b\u003c/code\u003e\u003c/a\u003e Github Stats v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/f550261fadf30702a42bc85f71e3489a3c2f6b99\"\u003e\u003ccode\u003ef550261\u003c/code\u003e\u003c/a\u003e Zenodo v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9a5e3e4253a3deaa5c83451b1208b5d46759ff7c\"\u003e\u003ccode\u003e9a5e3e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30628\"\u003e#30628\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30626-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb8cb0ce31f6965713a5d46fe4fadf2dffb74773\"\u003e\u003ccode\u003eeb8cb0c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30626\"\u003e#30626\u003c/a\u003e: MNT: Fix new F401 unused imports warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8fadc71e0e372f05aa0305ef425c5152d70d6f39\"\u003e\u003ccode\u003e8fadc71\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29745\"\u003e#29745\u003c/a\u003e: Use PEP8 style method and function names from (\u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30589\"\u003e#30589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/098876ee6f695f6c5297d4cf3f974c9d64ff4c79\"\u003e\u003ccode\u003e098876e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30614\"\u003e#30614\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30612-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb42d8637ba5891aa806fa6b0ed73835c16b2741\"\u003e\u003ccode\u003eeb42d86\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30612\"\u003e#30612\u003c/a\u003e: MNT: update black pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4a9c187a73fce92074b262612b3285dcff2d615e\"\u003e\u003ccode\u003e4a9c187\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30572\"\u003e#30572\u003c/a\u003e from QuLogic/auto-backport-of-pr-30571-on-v3.10.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.3...v3.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\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/pandas-dev/pandas/commit/9c8bc3e55188c8aff37207a74f1dd144980b8874\"\u003e\u003ccode\u003e9c8bc3e\u003c/code\u003e\u003c/a\u003e RLS: 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6aa788a00bda9b0f004302076dad94df3edeafc7\"\u003e\u003ccode\u003e6aa788a\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: prepare 2.3.3 whatsnew notes for release (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62499\"\u003e#62499\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62508\"\u003e#62508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b64f0df403d11ac733d9f460f89a5e99c8044ed0\"\u003e\u003ccode\u003eb64f0df\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: avoid validation error for ufunc with string[python] ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/058eb2b0edfc408dae9966ef1f03372f2a3ff04c\"\u003e\u003ccode\u003e058eb2b\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: String[pyarrow] comparison with mixed object (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62424\"\u003e#62424\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2ca088daef6a9d9333fea8aedffc7e50d28dfdee\"\u003e\u003ccode\u003e2ca088d\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DEPR: remove the Period resampling deprecation (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62480\"\u003e#62480\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62\"\u003e#62\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/92bf98f623572ed053d48be5818c8503f1b61888\"\u003e\u003ccode\u003e92bf98f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix .str.isdigit to honor unicode superscript for older...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e57c7d6a2247316188fba0ba2a0db3c11028d75c\"\u003e\u003ccode\u003ee57c7d6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62452\"\u003e#62452\u003c/a\u003e on branch 2.3.x (TST: Adjust tests for numexpr 2.13) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62454\"\u003e#62454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e0fe9a03c90e560c34a3bbbdd1735a8b64f7b281\"\u003e\u003ccode\u003ee0fe9a0\u003c/code\u003e\u003c/a\u003e Backport to 2.3.x: REGR: from_records not initializing subclasses properly (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/23a1085e641c8e3a5b500e319c5973e4160b9236\"\u003e\u003ccode\u003e23a1085\u003c/code\u003e\u003c/a\u003e BUG: improve future warning for boolean operations with missaligned indexes (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/61136969fb18b438b6660bd5d485d0236dbf4a71\"\u003e\u003ccode\u003e6113696\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62396\"\u003e#62396\u003c/a\u003e on branch 2.3.x (PKG/DOC: indicate Python 3.14 support in ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.1.2 to 6.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.5.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.3.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5421\"\u003e#5421\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplate\u003c/code\u003e for \u003ccode\u003ecandlestick\u003c/code\u003e and \u003ccode\u003eohlc\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7619\"\u003e#7619\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where numpy datetime contained in Python list was converted to integer [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5415\"\u003e#5415\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5388\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplatefallback\u003c/code\u003e and \u003ccode\u003etexttemplatefallback\u003c/code\u003e attributes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7577\"\u003e#7577\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;SI extended\u0026quot; formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7249\"\u003e#7249\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003ecreate_hexbin_mapbox\u003c/code\u003e in favor of \u003ccode\u003ecreate_hexbin_map\u003c/code\u003e, update related function calls [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5358\"\u003e5358\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/ajlien\"\u003e\u003ccode\u003e@​ajlien\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.1\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5357\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eFix issue preventing Scattergl plots with text elements from rendering [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7563\"\u003eplotly.js#7563\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse native legends when converting from matplotlib [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5312\"\u003e#5312\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e to the contribution!\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eshared_yaxes\u003c/code\u003e to work with secondary axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5180\"\u003e#5180\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/gmjw\"\u003e\u003ccode\u003e@​gmjw\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where width/height in plot layout were not respected during Kaleido image export [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5325\"\u003e#5325\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typo in default argument to \u003ccode\u003e_ternary_contour.py\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5315\"\u003e#5315\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Lexachoc\"\u003e\u003ccode\u003e@​Lexachoc\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003efig.show()\u003c/code\u003e behavior when \u003ccode\u003eipython\u003c/code\u003e is installed [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5258\"\u003e#5258\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.3.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Plotly.js from version 3.0.1 to version 3.1.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5318\"\u003e#5318\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExposed \u003ccode\u003eplotly.io.get_chrome()\u003c/code\u003e as a function which can be called from within a Python script. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5282\"\u003e#5282\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolved issue causing extraneous engine deprecation warnings [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5287\"\u003e#5287\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/jdbeel\"\u003e\u003ccode\u003e@​jdbeel\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.2.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SRI (Subresource Integrity) hash support for CDN script tags when using \u003ccode\u003einclude_plotlyjs='cdn'\u003c/code\u003e. This enhances security by ensuring browser verification of CDN-served plotly.js files [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5165\"\u003e#5165\u003c/a\u003e] (with thanks to \u003ca href=\"https://github.com/ddworken\"\u003e\u003ccode\u003e@​ddworken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting Plotly.js path via \u003ccode\u003epio.defaults\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5207\"\u003e#5207\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/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.5.0] - 2025-11-17\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.3.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5421\"\u003e#5421\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplate\u003c/code\u003e for \u003ccode\u003ecandlestick\u003c/code\u003e and \u003ccode\u003eohlc\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7619\"\u003e#7619\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where numpy datetime contained in Python list was converted to integer [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5415\"\u003e#5415\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.4.0] - 2025-11-02\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5388\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplatefallback\u003c/code\u003e and \u003ccode\u003etexttemplatefallback\u003c/code\u003e attributes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7577\"\u003e#7577\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;SI extended\u0026quot; formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7249\"\u003e#7249\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003ecreate_hexbin_mapbox\u003c/code\u003e in favor of \u003ccode\u003ecreate_hexbin_map\u003c/code\u003e, update related function calls [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5358\"\u003e5358\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/ajlien\"\u003e\u003ccode\u003e@​ajlien\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.3.1] - 2025-10-02\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5357\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eFix issue preventing Scattergl plots with text elements from rendering [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7563\"\u003eplotly.js#7563\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse native legends when converting from matplotlib [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5312\"\u003e#5312\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e to the contribution!\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eshared_yaxes\u003c/code\u003e to work with secondary axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5180\"\u003e#5180\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/gmjw\"\u003e\u003ccode\u003e@​gmjw\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where width/height in plot layout were not respected during Kaleido image export [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5325\"\u003e#5325\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typo in default argument to \u003ccode\u003e_ternary_contour.py\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5315\"\u003e#5315\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Lexachoc\"\u003e\u003ccode\u003e@​Lexachoc\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003efig.show()\u003c/code\u003e behavior when \u003ccode\u003eipython\u003c/code\u003e is installed [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5258\"\u003e#5258\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.3.0] - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Plotly.js from version 3.0.1 to version 3.1.0. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5318\"\u003e#5318\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExposed \u003ccode\u003eplotly.io.get_chrome()\u003c/code\u003e as a function which can be called from within a Python script. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5282\"\u003e#5282\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolved issue causing extraneous engine deprecation warnings [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5287\"\u003e#5287\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/jdbeel\"\u003e\u003ccode\u003e@​jdbeel\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.2.0] - 2025-06-26\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SRI (Subresource Integrity) hash support for CDN script tags when using \u003ccode\u003einclude_plotlyjs='cdn'\u003c/code\u003e. This enhances security by ensuring browser verification of CDN-served plotly.js files [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5165\"\u003e#5165\u003c/a\u003e] (with thanks to \u003ca href=\"https://github.com/ddworken\"\u003e\u003ccode\u003e@​ddworken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting Plotly.js path via \u003ccode\u003epio.defaults\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5207\"\u003e#5207\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/plotly/plotly.py/commit/b19f8e54350e753b3e82cdc078293e826009a640\"\u003e\u003ccode\u003eb19f8e5\u003c/code\u003e\u003c/a\u003e changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1ec9a16b3700a3399f7bf6d802a42510fe60c215\"\u003e\u003ccode\u003e1ec9a16\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/83a2b0b4594dd330ff23ccdb77770773ac7ef1bc\"\u003e\u003ccode\u003e83a2b0b\u003c/code\u003e\u003c/a\u003e version changes for v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a49f495aee7fbee5ac0a18dab4f563e7a68ce3e7\"\u003e\u003ccode\u003ea49f495\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5421\"\u003e#5421\u003c/a\u003e from plotly/update-plotlyjs-3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/f68752659ebbe499cd50cb4ca961d882aedfa84a\"\u003e\u003ccode\u003ef687526\u003c/code\u003e\u003c/a\u003e update plotly/labextension with files from ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/83ab425007895dabe5f682400bd45671be1a6386\"\u003e\u003ccode\u003e83ab425\u003c/code\u003e\u003c/a\u003e update package-lock with new plotly.js\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a3480f0237e76074fc3d9c47363689ae2b8a8ac7\"\u003e\u003ccode\u003ea3480f0\u003c/code\u003e\u003c/a\u003e package-lock indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/e519d5a46e44c90b24e678a93a2548a7cb0ae567\"\u003e\u003ccode\u003ee519d5a\u003c/code\u003e\u003c/a\u003e update plotly.js to v3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/22b0ac0ee686b1fc06ecb35c1b9b7f8e5261acba\"\u003e\u003ccode\u003e22b0ac0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5415\"\u003e#5415\u003c/a\u003e from plotly/fix-np-date-handling-issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/aa30be57c36d0ca602c0683d2232e7724f2b9dcf\"\u003e\u003ccode\u003eaa30be5\u003c/code\u003e\u003c/a\u003e Update _plotly_utils/basevalidators.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.1.2...v6.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypsa` from 0.34.1 to 1.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyPSA/PyPSA/releases\"\u003epypsa's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.5\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://docs.pypsa.org/latest/release-notes/\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: free up disk space by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1447\"\u003ePyPSA/PyPSA#1447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd user Serentica by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1453\"\u003ePyPSA/PyPSA#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1455\"\u003ePyPSA/PyPSA#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: CVaR optimization fails if components have no marginal costs by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1457\"\u003ePyPSA/PyPSA#1457\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix markdown syntax for pip install command by \u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1460\"\u003ePyPSA/PyPSA#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: run model runs only with src changes by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1462\"\u003ePyPSA/PyPSA#1462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: using inactive generators in global carrier constraint by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1450\"\u003ePyPSA/PyPSA#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo and improve description by \u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1461\"\u003ePyPSA/PyPSA#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate users.md by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1458\"\u003ePyPSA/PyPSA#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix description in stochastic optimization documentation by \u003ca href=\"https://github.com/energyLS\"\u003e\u003ccode\u003e@​energyLS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1452\"\u003ePyPSA/PyPSA#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate users.md / Meridian Economics by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1463\"\u003ePyPSA/PyPSA#1463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broadcasting bug for rolling horizon with linearised UC case by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1464\"\u003ePyPSA/PyPSA#1464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: expressions returning zero for non-extendable generators by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1451\"\u003ePyPSA/PyPSA#1451\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/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1460\"\u003ePyPSA/PyPSA#1460\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v1.0.4...v1.0.5\"\u003ehttps://github.com/PyPSA/PyPSA/compare/v1.0.4...v1.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.4\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://PyPSA.readthedocs.io/en/latest/release-notes.html\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd example notebook on negative prices in unit commitment model by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1434\"\u003ePyPSA/PyPSA#1434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd pypsa-asean by \u003ca href=\"https://github.com/fneum\"\u003e\u003ccode\u003e@​fneum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1435\"\u003ePyPSA/PyPSA#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix link in stochastic optimization example by \u003ca href=\"https://github.com/euronion\"\u003e\u003ccode\u003e@​euronion\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1436\"\u003ePyPSA/PyPSA#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: snapshot selection for operational in multi period optimization by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1437\"\u003ePyPSA/PyPSA#1437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: masking of nan constraints in kvl by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1438\"\u003ePyPSA/PyPSA#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of inactive storage components in constraints/variables by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1442\"\u003ePyPSA/PyPSA#1442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: busmap clustering for multilinks by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1441\"\u003ePyPSA/PyPSA#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: follow up on \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1441\"\u003e#1441\u003c/a\u003e by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1445\"\u003ePyPSA/PyPSA#1445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpin shapely upper bound by \u003ca href=\"https://github.com/brynpickering\"\u003e\u003ccode\u003e@​brynpickering\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1444\"\u003ePyPSA/PyPSA#1444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: use pixi for model tests by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1443\"\u003ePyPSA/PyPSA#1443\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/brynpickering\"\u003e\u003ccode\u003e@​brynpickering\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1444\"\u003ePyPSA/PyPSA#1444\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v1.0.3...v1.0.4\"\u003ehttps://github.com/PyPSA/PyPSA/compare/v1.0.3...v1.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://PyPSA.readthedocs.io/en/latest/release-notes.html\"\u003edocumentation\u003c/a\u003e.\u003c/p\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyPSA/PyPSA/blob/master/docs/release-notes.md\"\u003epypsa's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.5\"\u003e\u003cstrong\u003ev1.0.5\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e4th December 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.5\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix curtailment, capacity, and capex expressions returning zero for non-extendable generators. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix using inactive generators in global carrier constraint. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVaR optimization to handle networks with zero operational costs. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix xarray broadcasting for rolling-horizon with linearized unit commitment optimization. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.4\"\u003e\u003cstrong\u003ev1.0.4\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e21st November 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.4\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix busmap clustering to correctly remap all bus ports in multi-port links. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of inactive \u003ccode\u003eStorageUnit\u003c/code\u003e or \u003ccode\u003eStore\u003c/code\u003e components (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix snapshot selection in operational limit global constraint with investment period. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new example notebook demonstrating negative electricity prices in linearized unit commitment problem. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.3\"\u003e\u003cstrong\u003ev1.0.3\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e6th November 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.3\u0026quot; }\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix ramp_limit_up/down constraints: correctly detect components with ramp limits, handle rolling-horizon windows by using previous-window dispatch, and add unit tests for Link ramp limits and ramping constraints in rolling horizon mode. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.2\"\u003e\u003cstrong\u003ev1.0.2\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e24th October 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.2\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite recursion error when pickling networks. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.1\"\u003e\u003cstrong\u003ev1.0.1\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e20th October 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.1\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix [\u003ccode\u003en.set_snapshots\u003c/code\u003e][pypsa.Network.set_snapshots] to synchronize investment period weightings when snapshots with new periods are set. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix scenario extraction methods ([pypsa.Network.get_scenario][] and [\u003ccode\u003en['scenario']\u003c/code\u003e][pypsa.Network.\u003cstrong\u003egetitem\u003c/strong\u003e]) to properly handle empty components (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bus validation when adding global constraints via [pypsa.Network.add][], eliminating false warnings for GlobalConstraints. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix dimension name consistency when adding investment period weightings. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.0\"\u003e\u003cstrong\u003ev1.0.0\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e14th October 2025\u003c!-- raw HTML omitted --\u003e 🎉 { id=\u0026quot;v1.0.0\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003e\u003cstrong\u003ePyPSA 1.0\u003c/strong\u003e is here!\u003c/h3\u003e\n\u003cp\u003eCheck out \u003ca href=\"https://github.com/PyPSA/PyPSA/blob/master/docs/v1-guide.md\"\u003eWhat's new in PyPSA v1.0\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eFeatures\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/PyPSA/PyPSA/commit/470e3de1c8086f8805deca9d4c834d11e2f49c57\"\u003e\u003ccode\u003e470e3de\u003c/code\u003e\u003c/a\u003e [github-actions.ci] prepare release v1.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/56e9645a158e7ea8ae7df5bd2fd8b3cde7cbfe05\"\u003e\u003ccode\u003e56e9645\u003c/code\u003e\u003c/a\u003e prepare release \u003ccode\u003ev1.0.5\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/6c46fdd0f68be1543af9f17aac8af978f2030dfc\"\u003e\u003ccode\u003e6c46fdd\u003c/code\u003e\u003c/a\u003e fix: expressions returning zero for non-extendable generators (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1451\"\u003e#1451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/325e6620340d350b3977049eb0a078542c3003d6\"\u003e\u003ccode\u003e325e662\u003c/code\u003e\u003c/a\u003e Fix broadcasting bug for rolling horizon with linearised UC case (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1464\"\u003e#1464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/a4b5416e8346b4e696c6b95d25d1aed28dfd6723\"\u003e\u003ccode\u003ea4b5416\u003c/code\u003e\u003c/a\u003e Update users.md / Meridian Economics (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1463\"\u003e#1463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/4c7037dbd8b241f29494ff6473ba97e36364ee87\"\u003e\u003ccode\u003e4c7037d\u003c/code\u003e\u003c/a\u003e Update example of stochastic optimization documentation (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/53324de38945dd273185d018002649186f9f514b\"\u003e\u003ccode\u003e53324de\u003c/code\u003e\u003c/a\u003e Update users.md (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/2532a8a251cfc58d7c49669dc3693d780bac7f16\"\u003e\u003ccode\u003e2532a8a\u003c/code\u003e\u003c/a\u003e docs: fix typo and improve description (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/7460437c63887d542c1b90d65f103e4e4ff1ca56\"\u003e\u003ccode\u003e7460437\u003c/code\u003e\u003c/a\u003e fix: using inactive generators in global carrier constraint (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/681b9ac3fd5f6edeb9d23bf9ca288107f67b3965\"\u003e\u003ccode\u003e681b9ac\u003c/code\u003e\u003c/a\u003e ci: run model runs only with src changes (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1462\"\u003e#1462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v0.34.1...v1.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bottleneck` from 1.5.0 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydata/bottleneck/blob/master/RELEASE.rst\"\u003ebottleneck's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBottleneck 1.6.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003eRelease date 2025-09-05\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eMaintenance\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Add Python 3.14 support, drop Python 3.9 \n- Add free-threading trove classifier\n- Bump upper bound on numpy to account for numpy 2.3.x\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/3e5e705762b866e401eb9c0de9ce16b4cabc6348\"\u003e\u003ccode\u003e3e5e705\u003c/code\u003e\u003c/a\u003e MAINT: fix warning about \u003ccode\u003epp_*\u003c/code\u003e skip selector for PyPy wheels not being neede...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/e3978ab0b742fc1d826193dbdf81f8c0f96b9bcf\"\u003e\u003ccode\u003ee3978ab\u003c/code\u003e\u003c/a\u003e MNT: Prepare changelog for 1.6.0  (\u003ca href=\"https://redirect.github.com/pydata/bottleneck/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/aff8796c9ccb5e4fe5baa7b0dff0076eacdfcae3\"\u003e\u003ccode\u003eaff8796\u003c/code\u003e\u003c/a\u003e CI: windows-2019 runner was retired, move to windows-2022\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/f5f011f1e165f7ad8ce64d306aaff0a3f4d335a8\"\u003e\u003ccode\u003ef5f011f\u003c/code\u003e\u003c/a\u003e MAINT: add Python 3.14 support, drop Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/f3944e9b02b1fa48322624e2efd1468f33a05f79\"\u003e\u003ccode\u003ef3944e9\u003c/code\u003e\u003c/a\u003e MAINT: add free-threading trove classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/148684f2bfd1af29e791fa6a7773641a7e025754\"\u003e\u003ccode\u003e148684f\u003c/code\u003e\u003c/a\u003e BLD: bump upper bound on numpy to account for numpy 2.3.x\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydata/bottleneck/compare/v1.5.0...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cdsapi` from 0.7.6 to 0.7.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ecmwf/cdsapi/releases\"\u003ecdsapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.7.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\"\u003ehttps://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ecmwf/cdsapi/commit/e1be102bce7b7dafb27e9831c42863fdeada557b\"\u003e\u003ccode\u003ee1be102\u003c/code\u003e\u003c/a\u003e Update setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ecmwf/cdsapi/commit/72d7cec0b611c2f71c1a69da4668368df5118cdb\"\u003e\u003ccode\u003e72d7cec\u003c/code\u003e\u003c/a\u003e back to development version\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.4.26 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.04.26...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://githu...\n\n_Description has been truncated_","html_url":"https://github.com/ryanjenkinson/data-centre-modelling/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanjenkinson%2Fdata-centre-modelling/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"},{"uuid":"3633347426","node_id":"PR_kwDOMHVffc6z23Pp","number":72,"state":"closed","title":"Bump the python-packages group across 1 directory with 67 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-24T13:46:51.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-17T13:28:41.000Z","updated_at":"2025-11-24T13:46:53.000Z","time_to_close":605890,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":67,"packages":[{"name":"anyio","old_version":"4.9.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.2"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.8","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"contourpy","old_version":"1.3.1","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"flask","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.60.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"imbalanced-learn","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/scikit-learn-contrib/imbalanced-learn"},{"name":"ipykernel","old_version":"6.29.5","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"9.0.2","new_version":"9.7.0","repository_url":"https://github.com/ipython/ipython"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"joblib","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/joblib/joblib"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"jupyterlab","old_version":"4.4.4","new_version":"4.4.10","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"jupyterlab-server","old_version":"2.27.3","new_version":"2.28.0","repository_url":"https://github.com/jupyterlab/jupyterlab_server"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"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.1","new_version":"3.10.7","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"nltk","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/nltk/nltk"},{"name":"notebook","old_version":"7.4.4","new_version":"7.4.7","repository_url":"https://github.com/jupyter/notebook"},{"name":"numpy","old_version":"2.2.4","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.3.0","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pillow","old_version":"11.2.1","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"python-json-logger","old_version":"3.3.0","new_version":"4.0.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"qtconsole","old_version":"5.6.1","new_version":"5.7.0","repository_url":"https://github.com/jupyter/qtconsole"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"regex","old_version":"2024.11.6","new_version":"2025.11.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.29.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scikit-learn","old_version":"1.6.1","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.15.2","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20251115","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"webcolors","old_version":"24.11.1","new_version":"25.10.0","repository_url":"https://github.com/ubernostrum/webcolors"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 67 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.11.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.2` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.11.12` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.8` | `8.3.1` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.1` | `1.3.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.60.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [imbalanced-learn](https://github.com/scikit-learn-contrib/imbalanced-learn) | `0.13.0` | `0.14.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `7.1.0` |\n| [ipython](https://github.com/ipython/ipython) | `9.0.2` | `9.7.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.1` | `1.5.2` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.4` | `4.4.10` |\n| [jupyterlab-server](https://github.com/jupyterlab/jupyterlab_server) | `2.27.3` | `2.28.0` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.1` | `3.10.7` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.9.2` |\n| [notebook](https://github.com/jupyter/notebook) | `7.4.4` | `7.4.7` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.4` | `2.3.5` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.0` | `2.3.3` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.3.0` | `4.0.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [qtconsole](https://github.com/jupyter/qtconsole) | `5.6.1` | `5.7.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.11.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.29.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.6.1` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.2` | `1.16.3` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20251115` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [webcolors](https://github.com/ubernostrum/webcolors) | `24.11.1` | `25.10.0` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n\n\nUpdates `anyio` from 4.9.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ccode\u003etask call graphs\u003c/code\u003e_ on Python 3.14 and later when using\nAnyIO's task groups\n(\u003ccode\u003e[#1025](https://github.com/agronholm/anyio/issues/1025) \u0026lt;https://github.com/agronholm/anyio/pull/1025\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module\n(\u003ccode\u003e[#1001](https://github.com/agronholm/anyio/issues/1001) \u0026lt;https://github.com/agronholm/anyio/pull/1001\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the winloop_ implementation\n(\u003ccode\u003e[#960](https://github.com/agronholm/anyio/issues/960) \u0026lt;https://github.com/agronholm/anyio/pull/960\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e\n(\u003ccode\u003e[#1003](https://github.com/agronholm/anyio/issues/1003) \u0026lt;https://github.com/agronholm/anyio/pull/1003\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.)\n(\u003ccode\u003e[#1009](https://github.com/agronholm/anyio/issues/1009) \u0026lt;https://github.com/agronholm/anyio/pull/1009\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero\n(\u003ccode\u003e[#1019](https://github.com/agronholm/anyio/issues/1019) \u0026lt;https://github.com/agronholm/anyio/pull/1019\u0026gt;\u003c/code\u003e_; requires Python 3.10 or\nlater when using Trio)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e\nfunction (\u003ccode\u003e[#1021](https://github.com/agronholm/anyio/issues/1021) \u0026lt;https://github.com/agronholm/anyio/pull/1021\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and\n\u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in\nsuch cases (\u003ccode\u003e[#671](https://github.com/agronholm/anyio/issues/671) \u0026lt;https://github.com/agronholm/anyio/issues/671\u0026gt;\u003c/code\u003e_; PR by\n\u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio\n(\u003ccode\u003e[#1002](https://github.com/agronholm/anyio/issues/1002) \u0026lt;https://github.com/agronholm/anyio/issues/1002\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from\n\u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function\n(\u003ccode\u003e[#1011](https://github.com/agronholm/anyio/issues/1011) \u0026lt;https://github.com/agronholm/anyio/issues/1011\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _task call graphs: \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003ehttps://docs.python.org/3/library/asyncio-graph.html\u003c/a\u003e\n.. _winloop: \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ehttps://github.com/Vizonex/Winloop\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4.11.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\n(\u003ccode\u003e[#975](https://github.com/agronholm/anyio/issues/975) \u0026lt;https://github.com/agronholm/anyio/pull/975\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\nkeyword argument (\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\n(\u003ccode\u003e[#971](https://github.com/agronholm/anyio/issues/971) \u0026lt;https://github.com/agronholm/anyio/pull/971\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/08737af202f6610cdb8ba53fecaefd9c03269637\"\u003e\u003ccode\u003e08737af\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059\"\u003e\u003ccode\u003e8bb9fe0\u003c/code\u003e\u003c/a\u003e Fixed the inconsistent exception on sending to a closed TCP stream (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981\"\u003e\u003ccode\u003e9637093\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9\"\u003e\u003ccode\u003ef1bc6ee\u003c/code\u003e\u003c/a\u003e Fixed changelog entry formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133\"\u003e\u003ccode\u003e0b58964\u003c/code\u003e\u003c/a\u003e Mentioned the sub-interpreter support in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71\"\u003e\u003ccode\u003e1ed112c\u003c/code\u003e\u003c/a\u003e Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0\"\u003e\u003ccode\u003eaceeee0\u003c/code\u003e\u003c/a\u003e Re-enabled coverage reporting on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2\"\u003e\u003ccode\u003e6b890dc\u003c/code\u003e\u003c/a\u003e Reworded a changelog entry and added PR links to others\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd\"\u003e\u003ccode\u003e944257d\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a\"\u003e\u003ccode\u003e087975f\u003c/code\u003e\u003c/a\u003e Fixed a documentation style (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `arrow` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/releases\"\u003earrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eADDED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1222\"\u003earrow-py/arrow#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1201\"\u003earrow-py/arrow#1201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Macedonian in Latin locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1200\"\u003earrow-py/arrow#1200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian/Farsi locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1190\"\u003e#1190\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1190\"\u003earrow-py/arrow#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded week and weeks to Thai locale timeframes. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1218\"\u003e#1218\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1218\"\u003earrow-py/arrow#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded weeks to Catalan locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1189\"\u003e#1189\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1189\"\u003earrow-py/arrow#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1172\"\u003e#1172\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1172\"\u003earrow-py/arrow#1172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCHANGED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated Arrow to use ZoneInfo for timezones instead of pytz. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1217\"\u003e#1217\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1217\"\u003earrow-py/arrow#1217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFIXED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed humanize month limits. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1224\"\u003earrow-py/arrow#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1171\"\u003e#1171\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1171\"\u003earrow-py/arrow#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed spelling and removed poorly used expressions in Korean locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1181\"\u003e#1181\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1181\"\u003earrow-py/arrow#1181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1194\"\u003e#1194\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1194\"\u003earrow-py/arrow#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1184\"\u003e#1184\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1184\"\u003earrow-py/arrow#1184\u003c/a\u003e), [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1186\"\u003e#1186\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1186\"\u003earrow-py/arrow#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1182\"\u003e#1182\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1182\"\u003earrow-py/arrow#1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eINTERNAL\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded codecov test results. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1223\"\u003earrow-py/arrow#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003eAdded docstrings to parser.py. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1010\"\u003e#1010\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1010\"\u003earrow-py/arrow#1010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated Python versions support and bumped CI dependencies. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1177\"\u003e#1177\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1177\"\u003earrow-py/arrow#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded dependabot for GitHub actions. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1193\"\u003e#1193\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1193\"\u003earrow-py/arrow#1193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMoved dateutil types to test requirements. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1183\"\u003e#1183\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1183\"\u003earrow-py/arrow#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1180\"\u003e#1180\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1180\"\u003earrow-py/arrow#1180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst\"\u003earrow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0 (2025-10-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. \u003ccode\u003ePR [#1222](https://github.com/arrow-py/arrow/issues/1222) \u0026lt;https://github.com/arrow-py/arrow/pull/1222\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. \u003ccode\u003ePR [#1201](https://github.com/arrow-py/arrow/issues/1201) \u0026lt;https://github.com/arrow-py/arrow/pull/1201\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Macedonian in Latin locale support. \u003ccode\u003ePR [#1200](https://github.com/arrow-py/arrow/issues/1200) \u0026lt;https://github.com/arrow-py/arrow/pull/1200\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian/Farsi locale support. \u003ccode\u003ePR [#1190](https://github.com/arrow-py/arrow/issues/1190) \u0026lt;https://github.com/arrow-py/arrow/pull/1190\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added week and weeks to Thai locale timeframes. \u003ccode\u003ePR [#1218](https://github.com/arrow-py/arrow/issues/1218) \u0026lt;https://github.com/arrow-py/arrow/pull/1218\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added weeks to Catalan locale. \u003ccode\u003ePR [#1189](https://github.com/arrow-py/arrow/issues/1189) \u0026lt;https://github.com/arrow-py/arrow/pull/1189\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. \u003ccode\u003ePR [#1172](https://github.com/arrow-py/arrow/issues/1172) \u0026lt;https://github.com/arrow-py/arrow/pull/1172\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[CHANGED] Migrated Arrow to use ZoneInfo for timezones instead of pytz. \u003ccode\u003ePR [#1217](https://github.com/arrow-py/arrow/issues/1217) \u0026lt;https://github.com/arrow-py/arrow/pull/1217\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed humanize month limits. \u003ccode\u003ePR [#1224](https://github.com/arrow-py/arrow/issues/1224) \u0026lt;https://github.com/arrow-py/arrow/pull/1224\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. \u003ccode\u003ePR [#1171](https://github.com/arrow-py/arrow/issues/1171) \u0026lt;https://github.com/arrow-py/arrow/pull/1171\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed spelling and removed poorly used expressions in Korean locale. \u003ccode\u003ePR [#1181](https://github.com/arrow-py/arrow/issues/1181) \u0026lt;https://github.com/arrow-py/arrow/pull/1181\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Updated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. \u003ccode\u003ePR [#1194](https://github.com/arrow-py/arrow/issues/1194) \u0026lt;https://github.com/arrow-py/arrow/pull/1194\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Improved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). \u003ccode\u003ePR [#1184](https://github.com/arrow-py/arrow/issues/1184) \u0026lt;https://github.com/arrow-py/arrow/pull/1184\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003ePR [#1186](https://github.com/arrow-py/arrow/issues/1186) \u0026lt;https://github.com/arrow-py/arrow/pull/1186\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e[FIXED] Addressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. \u003ccode\u003ePR [#1182](https://github.com/arrow-py/arrow/issues/1182) \u0026lt;https://github.com/arrow-py/arrow/pull/1182\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added codecov test results. \u003ccode\u003ePR [#1223](https://github.com/arrow-py/arrow/issues/1223) \u0026lt;https://github.com/arrow-py/arrow/pull/1223\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added docstrings to parser.py. \u003ccode\u003ePR [#1010](https://github.com/arrow-py/arrow/issues/1010) \u0026lt;https://github.com/arrow-py/arrow/pull/1010\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated Python versions support and bumped CI dependencies. \u003ccode\u003ePR [#1177](https://github.com/arrow-py/arrow/issues/1177) \u0026lt;https://github.com/arrow-py/arrow/pull/1177\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added dependabot for GitHub actions. \u003ccode\u003ePR [#1193](https://github.com/arrow-py/arrow/issues/1193) \u0026lt;https://github.com/arrow-py/arrow/pull/1193\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Moved dateutil types to test requirements. \u003ccode\u003ePR [#1183](https://github.com/arrow-py/arrow/issues/1183) \u0026lt;https://github.com/arrow-py/arrow/pull/1183\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. \u003ccode\u003ePR [#1180](https://github.com/arrow-py/arrow/issues/1180) \u0026lt;https://github.com/arrow-py/arrow/pull/1180\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/2c1f5185ad66bf3b1cf8c0812f4b4fe65ac46656\"\u003e\u003ccode\u003e2c1f518\u003c/code\u003e\u003c/a\u003e Bump release CI flow to use Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/2483bfea4ec8a4da609036aba3ce1b32cb571875\"\u003e\u003ccode\u003e2483bfe\u003c/code\u003e\u003c/a\u003e Bump changelog date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c61de9299733da6d4a7e8badabae43684a3f9da2\"\u003e\u003ccode\u003ec61de92\u003c/code\u003e\u003c/a\u003e Bump version and add changelog (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1228\"\u003e#1228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c3bb589536b283e3e3886d1d6bc01a6374c8e656\"\u003e\u003ccode\u003ec3bb589\u003c/code\u003e\u003c/a\u003e Update pypy CI version and update pre-commit dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/85cd905332d108303da1cbd0f2336fcae058147f\"\u003e\u003ccode\u003e85cd905\u003c/code\u003e\u003c/a\u003e Run tests on next Python release (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/4c8c44aefc0e5504b9c3cbf0d6adbb0ec4aa4571\"\u003e\u003ccode\u003e4c8c44a\u003c/code\u003e\u003c/a\u003e Add week_start parameter to floor() and ceil() (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/7ccbe66122ca53d90acf9c69c37aa95c81a1fe89\"\u003e\u003ccode\u003e7ccbe66\u003c/code\u003e\u003c/a\u003e add codecov test results (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/05cd9b47d0db1c22b44cb739832f1b9701855313\"\u003e\u003ccode\u003e05cd9b4\u003c/code\u003e\u003c/a\u003e fix humanize month limits (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/ea756ea779468b0c6a9f45439dc05cfd5e71ee1e\"\u003e\u003ccode\u003eea756ea\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/86f7520f15b2dd46f9c49f71ce5c15bbc537ed67\"\u003e\u003ccode\u003e86f7520\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/arrow-py/arrow/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.14.2\n\nUpdates `bleach` from 6.2.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.8 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/8.3.1/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNo...\n\n_Description has been truncated_","html_url":"https://github.com/manulthanura/ReviewClassifier/pull/72","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/manulthanura%2FReviewClassifier/issues/72","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/72/packages"},{"uuid":"3606691835","node_id":"PR_kwDOD-zs2M6ydq6f","number":334,"state":"open","title":"Update fastjsonschema requirement from ~=2.17.1 to ~=2.21.2 in /tests","user":"dependabot[bot]","labels":["dependencies","python","category: dependency_changes","Stale"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T08:10:20.000Z","updated_at":"2025-11-25T00:44:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"fastjsonschema","old_version":"~=2.17.1","new_version":"~=2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":"/tests","ecosystem":"pip"},"body":"Updates the requirements on [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.1 (2023-12-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed date format to accept only two digit months and days\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.0 (2023-11-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003euse_formats\u003c/code\u003e parameter to allow disable automatic assertions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.1 (2023-10-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazy import of urllib to improve import performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.0 (2023-07-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error message for required props - only missing are reported\u003c/li\u003e\n\u003cli\u003eFixed support of boolean schema in if-then-else application\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.1 (2023-05-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed tests in sdist\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.0 (2023-05-21)\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/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.17.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/rnugmanx/openvino/pull/334","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnugmanx%2Fopenvino/issues/334","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/334/packages"},{"uuid":"3586611862","node_id":"PR_kwDOLzgXB86xbAwt","number":615,"state":"closed","title":"Bump the allpip group across 1 directory with 68 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-10T07:46:16.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-04T13:32:47.000Z","updated_at":"2025-11-10T07:46:19.000Z","time_to_close":497609,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":68,"packages":[{"name":"alembic","old_version":"1.16.5","new_version":"1.17.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.11.9","new_version":"2.12.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"uvicorn","old_version":"0.36.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"sqlalchemy","old_version":"2.0.43","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"minio","old_version":"7.2.16","new_version":"7.2.18","repository_url":"https://github.com/minio/minio-py"},{"name":"coverage","old_version":"7.10.7","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"ruff","old_version":"0.13.1","new_version":"0.14.3","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pyright","old_version":"1.1.405","new_version":"1.1.407","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"anyio","old_version":"4.8.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi","old_version":"23.1.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachecontrol","old_version":"0.14.1","new_version":"0.14.3","repository_url":"https://github.com/psf/cachecontrol"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.10.5","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cryptography","old_version":"44.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"cssbeautifier","old_version":"1.15.1","new_version":"1.15.4","repository_url":"https://github.com/beautifier/js-beautify"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"editorconfig","old_version":"0.17.0","new_version":"0.17.1","repository_url":"https://github.com/editorconfig/editorconfig-core-py"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.16.1","new_version":"3.20.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"findpython","old_version":"0.6.2","new_version":"0.7.0","repository_url":"https://github.com/frostming/findpython"},{"name":"fsspec","old_version":"2024.12.0","new_version":"2025.10.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.1.1","new_version":"3.2.4","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"httptools","old_version":"0.6.4","new_version":"0.7.1","repository_url":"https://github.com/MagicStack/httptools"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.15","repository_url":"https://github.com/pre-commit/identify"},{"name":"idna","old_version":"3.10","new_version":"3.11","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":"jaraco-functools","old_version":"4.1.0","new_version":"4.3.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jeepney","old_version":"0.8.0","new_version":"0.9.0"},{"name":"jsbeautifier","old_version":"1.15.1","new_version":"1.15.4","repository_url":"https://github.com/ghost6991/Jsbeautifier"},{"name":"json5","old_version":"0.10.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"mako","old_version":"1.3.8","new_version":"1.3.10","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":"more-itertools","old_version":"10.5.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.0","repository_url":"https://github.com/aio-libs/multidict"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pbs-installer","old_version":"2025.2.12","new_version":"2025.10.31","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"pkginfo","old_version":"1.12.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"propcache","old_version":"0.2.1","new_version":"0.4.1","repository_url":"https://github.com/aio-libs/propcache"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pycryptodome","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"rapidfuzz","old_version":"3.11.0","new_version":"3.14.3","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"regex","old_version":"2024.11.6","new_version":"2025.11.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"secretstorage","old_version":"3.3.3","new_version":"3.4.0","repository_url":"https://github.com/mitya57/secretstorage"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.1.6.15","new_version":"2025.9.11.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"validators","old_version":"0.34.0","new_version":"0.35.0","repository_url":"https://github.com/python-validators/validators"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.0.3","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"14.1","new_version":"15.0.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"1.17.0","new_version":"2.0.0","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"xattr","old_version":"1.1.4","new_version":"1.3.0","repository_url":"https://github.com/xattr/xattr"},{"name":"yarl","old_version":"1.18.3","new_version":"1.22.0","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"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 64 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.5` | `1.17.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.9` | `2.12.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.10.1` | `2.11.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.36.0` | `0.38.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.44` |\n| [minio](https://github.com/minio/minio-py) | `7.2.16` | `7.2.18` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.7` | `7.11.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.1` | `0.14.3` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.405` | `1.1.407` |\n| [anyio](https://github.com/agronholm/anyio) | `4.8.0` | `4.11.0` |\n| [argon2-cffi](https://github.com/hynek/argon2-cffi) | `23.1.0` | `25.1.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.1` | `0.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.10.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.4` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.1` | `46.0.3` |\n| [cssbeautifier](https://github.com/beautifier/js-beautify) | `1.15.1` | `1.15.4` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [editorconfig](https://github.com/editorconfig/editorconfig-core-py) | `0.17.0` | `0.17.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.20.0` |\n| [findpython](https://github.com/frostming/findpython) | `0.6.2` | `0.7.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2024.12.0` | `2025.10.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.1.1` | `3.2.4` |\n| [httptools](https://github.com/MagicStack/httptools) | `0.6.4` | `0.7.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.1.0` | `4.3.0` |\n| [jeepney](https://gitlab.com/takluyver/jeepney) | `0.8.0` | `0.9.0` |\n| [jsbeautifier](https://github.com/ghost6991/Jsbeautifier) | `1.15.1` | `1.15.4` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.10.0` | `0.12.1` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.8` | `1.3.10` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.5.0` | `10.8.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.1.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.2.12` | `2025.10.31` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.12.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.1` | `0.4.1` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.21.0` | `3.23.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.11.0` | `3.14.3` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.11.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [secretstorage](https://github.com/mitya57/secretstorage) | `3.3.3` | `3.4.0` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.1.6.15` | `2025.9.11.17` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [validators](https://github.com/python-validators/validators) | `0.34.0` | `0.35.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.3` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `14.1` | `15.0.1` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.0` | `2.0.0` |\n| [xattr](https://github.com/xattr/xattr) | `1.1.4` | `1.3.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.18.3` | `1.22.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n\n\nUpdates `alembic` from 1.16.5 to 1.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.17.1\u003c/h1\u003e\n\u003cp\u003eReleased: October 28, 2025\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003ecommand.current.check_heads\u003c/code\u003e parameter to\n\u003ccode\u003ecommand.current()\u003c/code\u003e command, available from the command line via the\n\u003ccode\u003e--check-heads\u003c/code\u003e option to \u003ccode\u003ealembic current\u003c/code\u003e.  This tests if all head\nrevisions are applied to the database and raises \u003ccode\u003eDatabaseNotAtHead\u003c/code\u003e\n(or from the command line, exits with a non-zero exit code) if this is not\nthe case.  The parameter operates equvialently to the cookbook recipe\n\u003ccode\u003ecookbook_check_heads\u003c/code\u003e. Pull request courtesy Stefan Scherfke.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1705\"\u003e#1705\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [commands]\u003c/strong\u003e Disallow ':' character in custom revision identifiers. Previously, using a\ncolon in a revision ID (e.g., 'REV:1') would create the revision, however\nrevisions with colons in them are not correctly interpreted by other\ncommands, as it overlaps with the revision range syntax.   Pull request\ncourtesy Kim Wooseok with original implementation by Hrushikesh Patil.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1540\"\u003e#1540\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.17.0\u003c/h1\u003e\n\u003cp\u003eReleased: October 11, 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [tests]\u003c/strong\u003e The top-level test runner has been changed to use \u003ccode\u003enox\u003c/code\u003e, adding a\n\u003ccode\u003enoxfile.py\u003c/code\u003e as well as some included modules.   The \u003ccode\u003etox.ini\u003c/code\u003e file\nremains in place so that \u003ccode\u003etox\u003c/code\u003e runs will continue to function in the near\nterm, however it will be eventually removed and improvements and\nmaintenance going forward will be only towards \u003ccode\u003enoxfile.py\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [general]\u003c/strong\u003e The minimum Python version is now 3.10, as Python 3.9 is EOL.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.9 to 2.12.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided to emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \u003ccode\u003eFieldInfo\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/12411\"\u003e#12411\u003c/a\u003e.\nThis also adds back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still \u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.2 2025-10-14\u003c/h2\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.1 2025-10-13\u003c/h2\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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-core/pull/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.12 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported\n\u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided\nto emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \u003ccode\u003eFieldInfo\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/12411\"\u003e#12411\u003c/a\u003e.\nThis also add back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still\n\u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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-core/pull/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/commit/1a8850d101e67d2744ba8c6286e1172d7cd89d0b\"\u003e\u003ccode\u003e1a8850d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/09dbcf29c73c3fd7fd3ef1edfebe357e807cc9ca\"\u003e\u003ccode\u003e09dbcf2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e method, improve documentation around \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5da43310ec61a7b9b3017b2b9f388e778398a1bc\"\u003e\u003ccode\u003e5da4331\u003c/code\u003e\u003c/a\u003e Improve documentation about serialize as any behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9c863245ad3799ab331f33b52e2d7441e9c1191e\"\u003e\u003ccode\u003e9c86324\u003c/code\u003e\u003c/a\u003e Raise a warning when an invalid after model validator function signature is r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/36a73c6ed53df7f1cad3343bc811e1dd3f52d26f\"\u003e\u003ccode\u003e36a73c6\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003epydantic-extra-types\u003c/code\u003e dependency to version \u003ccode\u003e\u0026gt;=2.10.6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1e616a3a6fa0201f840c08143cac883e56a2d9df\"\u003e\u003ccode\u003e1e616a3\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc302e2d09f0eed14729f69bc61a258f1f35d35c\"\u003e\u003ccode\u003edc302e2\u003c/code\u003e\u003c/a\u003e Fix issue with recursive generic models with a parent model class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/6876485d0cffeb66c915695574344ae4b03645a7\"\u003e\u003ccode\u003e6876485\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b4076c66773b514d4891f036a4cc562b8ff0ff21\"\u003e\u003ccode\u003eb4076c6\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b67f07291167b4005a6eeee05fcad67b43a53f41\"\u003e\u003ccode\u003eb67f072\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.9...v2.12.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\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/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/3e664300f38a4ad1e1ff4b431147f18d63930028\"\u003e\u003ccode\u003e3e66430\u003c/code\u003e\u003c/a\u003e Prepare release 2.11.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/44fb5b7a97ed82d09d3895bee49b82ae4ac55fd9\"\u003e\u003ccode\u003e44fb5b7\u003c/code\u003e\u003c/a\u003e Update deps (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0497ef23314dbd63ea41d07ab9c301e628f2f9f9\"\u003e\u003ccode\u003e0497ef2\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c22cef44ff7d3ca058eee188bf1967650146fcda\"\u003e\u003ccode\u003ec22cef4\u003c/code\u003e\u003c/a\u003e Snake case conversion in Azure Key Vault (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9c6c9b55e27ab78e48eaa570965c6e52c32c9f38\"\u003e\u003ccode\u003e9c6c9b5\u003c/code\u003e\u003c/a\u003e Cli root model support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/677\"\u003e#677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/a164b73fcf8d802c1a7db7c6d9d830f11b70244e\"\u003e\u003ccode\u003ea164b73\u003c/code\u003e\u003c/a\u003e CLI Windows Path Fix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/d81f8d861d01eff563b8b91a1694d48b6eade92e\"\u003e\u003ccode\u003ed81f8d8\u003c/code\u003e\u003c/a\u003e Fix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/53ade971d122b9fef88da85a8ff489180e06c796\"\u003e\u003ccode\u003e53ade97\u003c/code\u003e\u003c/a\u003e Included endpoint_url kwarg in AWSSecretsManagerSettingsSource class (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1967d6f5c18db30ddbcffe4856ea941a71189abc\"\u003e\u003ccode\u003e1967d6f\u003c/code\u003e\u003c/a\u003e Warn if model_config sets unused keys for missing settings sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1fc20873d208979dfac0fa336f99fc05c0562ae8\"\u003e\u003ccode\u003e1fc2087\u003c/code\u003e\u003c/a\u003e Avoid env_prefix falling back to env vars without prefix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.36.0 to 0.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\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.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\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.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.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's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\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/3850ad6520cafb290bd4174fa9c4ca5d33440c82\"\u003e\u003ccode\u003e3850ad6\u003c/code\u003e\u003c/a\u003e Version 0.38.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b3f17a549ec96f57bf4d975145fc58feefdd4e8\"\u003e\u003ccode\u003e9b3f17a\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ce79f95d065c053b36449f67b3b2cefee5ecf167\"\u003e\u003ccode\u003ece79f95\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dbf8797b47c79da542f530f2143b8e851e2388fd\"\u003e\u003ccode\u003edbf8797\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2728\"\u003e#2728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/58f28be98eb95c8cf25905df10997b4af81c23e3\"\u003e\u003ccode\u003e58f28be\u003c/code\u003e\u003c/a\u003e Add section about event loop (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2725\"\u003e#2725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/93d95107490d5ea3693601388d7783c450058271\"\u003e\u003ccode\u003e93d9510\u003c/code\u003e\u003c/a\u003e Bump docs dependencies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b1c6c45ed7fe8bd485ddad475f0feff03971af7\"\u003e\u003ccode\u003e9b1c6c4\u003c/code\u003e\u003c/a\u003e Move Marcelo Trylesinski to maintainers in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/57a61d86f2f123b1d35b9ff71e0f29d22d10806f\"\u003e\u003ccode\u003e57a61d8\u003c/code\u003e\u003c/a\u003e Add discord to README (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2718\"\u003e#2718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ef5f9f5e7e79887b4ab4214c15ab5a9ce63e193\"\u003e\u003ccode\u003e7ef5f9f\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6d26d88970379cbf20b4dbf4f70e27f191db4ede\"\u003e\u003ccode\u003e6d26d88\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for PEP639 compliance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2713\"\u003e#2713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.38.0\"\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 `sqlalchemy` from 2.0.43 to 2.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `minio` from 7.2.16 to 7.2.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/minio/minio-py/releases\"\u003eminio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBugfix Release 7.2.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix ETag parsing in CompleteMultipartUploadResult by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1518\"\u003eminio/minio-py#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecredentials: set expiration using object.\u003cstrong\u003esetattr\u003c/strong\u003e() by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1516\"\u003eminio/minio-py#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecleanup: SSE-C keys fix a misleading error message by \u003ca href=\"https://github.com/marktheunissen\"\u003e\u003ccode\u003e@​marktheunissen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1514\"\u003eminio/minio-py#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add py.typed in setup.py by \u003ca href=\"https://github.com/tughril\"\u003e\u003ccode\u003e@​tughril\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1513\"\u003eminio/minio-py#1513\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/marktheunissen\"\u003e\u003ccode\u003e@​marktheunissen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1514\"\u003eminio/minio-py#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tughril\"\u003e\u003ccode\u003e@​tughril\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1513\"\u003eminio/minio-py#1513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/minio/minio-py/compare/7.2.17...7.2.18\"\u003ehttps://github.com/minio/minio-py/compare/7.2.17...7.2.18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugfix Release 7.2.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinioAdmin: allow specifying policies as dict besides file by \u003ca href=\"https://github.com/Alveel\"\u003e\u003ccode\u003e@​Alveel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1480\"\u003eminio/minio-py#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix too-many-positional-arguments error and other issues by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1504\"\u003eminio/minio-py#1504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCredentials: redact password in URL by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1511\"\u003eminio/minio-py#1511\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/minio/minio-py/compare/7.2.16...7.2.17\"\u003ehttps://github.com/minio/minio-py/compare/7.2.16...7.2.17\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/ff647fe1fcb0ffb1ed190b6c6d1c8c958056508f\"\u003e\u003ccode\u003eff647fe\u003c/code\u003e\u003c/a\u003e feat: add py.typed in setup.py (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1513\"\u003e#1513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/ddb99190885a7b951339beec1ba5984c93be1341\"\u003e\u003ccode\u003eddb9919\u003c/code\u003e\u003c/a\u003e cleanup: SSE-C keys fix a misleading error message (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1514\"\u003e#1514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/ba1d03bb943de7065d5c712ccdee78d8a88b70bf\"\u003e\u003ccode\u003eba1d03b\u003c/code\u003e\u003c/a\u003e credentials: set expiration using object.\u003cstrong\u003esetattr\u003c/strong\u003e() (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1516\"\u003e#1516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/7c34d3c590740544fbf80fa153240a53043a3fca\"\u003e\u003ccode\u003e7c34d3c\u003c/code\u003e\u003c/a\u003e fix ETag parsing in CompleteMultipartUploadResult (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/4ecbbf3ec4398af1531ac0818fe00f7ad63b917f\"\u003e\u003ccode\u003e4ecbbf3\u003c/code\u003e\u003c/a\u003e Update version to next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/594ce03ac89fb19b1e60ea5b85172aa84c333ec1\"\u003e\u003ccode\u003e594ce03\u003c/code\u003e\u003c/a\u003e Credentials: redact password in URL (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1511\"\u003e#1511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/bb1a57ae2d8938c21f4922b8e75538bf9c68e9b6\"\u003e\u003ccode\u003ebb1a57a\u003c/code\u003e\u003c/a\u003e fix too-many-positional-arguments error and other issues (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1504\"\u003e#1504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/94b1193109c0ca8fa34f9319699e62c94ae269b2\"\u003e\u003ccode\u003e94b1193\u003c/code\u003e\u003c/a\u003e MinioAdmin: allow specifying policies as dict besides file (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1480\"\u003e#1480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/b7001538c7f6cd1277efbac450b9286d07806834\"\u003e\u003ccode\u003eb700153\u003c/code\u003e\u003c/a\u003e Update version to next release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/minio/minio-py/compare/7.2.16...7.2.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.11.0 — 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9, declared support for Python 3.15 alpha.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-7:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/20ef00b4abc33a52ffcb10de4d3144e29dbea6a3\"\u003e\u003ccode\u003e20ef00b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5edf8ebf1f9754b32bad92d4826ed651614d9b94\"\u003e\u003ccode\u003e5edf8eb\u003c/code\u003e\u003c/a\u003e docs: prep for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2c023ae7a1c50e375d20c31b0b8c693416ba92a5\"\u003e\u003ccode\u003e2c023ae\u003c/code\u003e\u003c/a\u003e build: 3.15 is supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2f1b95b0bd913397da3236155ca78e2117731247\"\u003e\u003ccode\u003e2f1b95b\u003c/code\u003e\u003c/a\u003e refactor: no need for _BaseCoverageException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/72b1bcc77e0062eefaf9d1da40c6b8c2ef0ec27e\"\u003e\u003ccode\u003e72b1bcc\u003c/code\u003e\u003c/a\u003e build: test light-threads on all versions of Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/16e93797527eada3417afc439fc4b28a432d6efc\"\u003e\u003ccode\u003e16e9379\u003c/code\u003e\u003c/a\u003e refactor: move core tests to their own file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bc8875db8f98439c046f4c141cb7aecdaa8d1f56\"\u003e\u003ccode\u003ebc8875d\u003c/code\u003e\u003c/a\u003e test: change a test to be in-process so metacov can capture its work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/8e5d5b1bd53147e8618019191a062d2b86747355\"\u003e\u003ccode\u003e8e5d5b1\u003c/code\u003e\u003c/a\u003e build: tweak some version info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b0236dffef02f1aa219326b96230bdf26b9f5e6c\"\u003e\u003ccode\u003eb0236df\u003c/code\u003e\u003c/a\u003e test: more tests for core selection, and some refactoring of them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/56edde623ae497c3638e608ef6803583c1db8720\"\u003e\u003ccode\u003e56edde6\u003c/code\u003e\u003c/a\u003e build: next version will be 7.11.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.7...7.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.1 to 0.14.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.3\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-10-30.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect \u003ccode\u003e--output-format\u003c/code\u003e with \u003ccode\u003e--watch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21097\"\u003e#21097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydoclint\u003c/code\u003e] Fix false positive on explicit exception re-raising (\u003ccode\u003eDOC501\u003c/code\u003e, \u003ccode\u003eDOC502\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21011\"\u003e#21011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Revert to stable behavior if imports for module lie in alternate branches for \u003ccode\u003eF401\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20878\"\u003e#20878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003estop-iteration-return\u003c/code\u003e (\u003ccode\u003ePLR1708\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20733\"\u003e#20733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add support for additional eager conversion patterns (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20657\"\u003e#20657\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix finding keyword range for clause header after statement ending with semicolon (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21067\"\u003e#21067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix syntax error false positive on nested alternative patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21104\"\u003e#21104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eISC001\u003c/code\u003e] Fix panic when string literals are unclosed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21034\"\u003e#21034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-django\u003c/code\u003e] Apply \u003ccode\u003eDJ001\u003c/code\u003e to annotated fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20907\"\u003e#20907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix \u003ccode\u003ePYI034\u003c/code\u003e to not trigger on metaclasses (\u003ccode\u003ePYI034\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20881\"\u003e#20881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Fix \u003ccode\u003eTC003\u003c/code\u003e false positive with \u003ccode\u003efuture-annotations\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21125\"\u003e#21125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix false positive for \u003ccode\u003e__class__\u003c/code\u003e in lambda expressions within class definitions (\u003ccode\u003eF821\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20564\"\u003e#20564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive for \u003ccode\u003eTypeVar\u003c/code\u003e with default on Python \u0026lt;3.13 (\u003ccode\u003eUP046\u003c/code\u003e,\u003ccode\u003eUP047\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21045\"\u003e#21045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing docstring sections to the numpy list (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20931\"\u003e#20931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Extend \u003ccode\u003eairflow.models..Param\u003c/code\u003e check (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21043\"\u003e#21043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Warn that \u003ccode\u003eairflow....DAG.create_dagrun\u003c/code\u003e has been removed (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21093\"\u003e#21093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Preserve digit separators in \u003ccode\u003eDecimal\u003c/code\u003e constructor (\u003ccode\u003eFURB157\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20588\"\u003e#20588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid sending an unnecessary \u0026quot;clear diagnostics\u0026quot; message for clients supporting pull diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21105\"\u003e#21105\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix correct example for \u003ccode\u003eS308\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21128\"\u003e#21128\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClearer error message when \u003ccode\u003eline-length\u003c/code\u003e goes beyond threshold (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21072\"\u003e#21072\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/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jvacek\"\u003e\u003ccode\u003e@​jvacek\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.3\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-10-30.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect \u003ccode\u003e--output-format\u003c/code\u003e with \u003ccode\u003e--watch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21097\"\u003e#21097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydoclint\u003c/code\u003e] Fix false positive on explicit exception re-raising (\u003ccode\u003eDOC501\u003c/code\u003e, \u003ccode\u003eDOC502\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21011\"\u003e#21011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Revert to stable behavior if imports for module lie in alternate branches for \u003ccode\u003eF401\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20878\"\u003e#20878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003estop-iteration-return\u003c/code\u003e (\u003ccode\u003ePLR1708\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20733\"\u003e#20733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add support for additional eager conversion patterns (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20657\"\u003e#20657\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix finding keyword range for clause header after statement ending with semicolon (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21067\"\u003e#21067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix syntax error false positive on nested alternative patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21104\"\u003e#21104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eISC001\u003c/code\u003e] Fix panic when string literals are unclosed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21034\"\u003e#21034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-django\u003c/code\u003e] Apply \u003ccode\u003eDJ001\u003c/code\u003e to annotated fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20907\"\u003e#20907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix \u003ccode\u003ePYI034\u003c/code\u003e to not trigger on metaclasses (\u003ccode\u003ePYI034\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20881\"\u003e#20881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Fix \u003ccode\u003eTC003\u003c/code\u003e false positive with \u003ccode\u003efuture-annotations\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21125\"\u003e#21125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix false positive for \u003ccode\u003e__class__\u003c/code\u003e in lambda expressions within class definitions (\u003ccode\u003eF821\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20564\"\u003e#20564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive for \u003ccode\u003eTypeVar\u003c/code\u003e with default on Python \u0026lt;3.13 (\u003ccode\u003eUP046\u003c/code\u003e,\u003ccode\u003eUP047\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21045\"\u003e#21045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing docstring sections to the numpy list (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20931\"\u003e#20931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Extend \u003ccode\u003eairflow.models..Param\u003c/code\u003e check (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21043\"\u003e#21043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Warn that \u003ccode\u003eairflow....DAG.create_dagrun\u003c/code\u003e has been removed (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21093\"\u003e#21093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Preserve digit separators in \u003ccode\u003eDecimal\u003c/code\u003e constructor (\u003ccode\u003eFURB157\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20588\"\u003e#20588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid sending an unnecessary \u0026quot;clear diagnostics\u0026quot; message for clients supporting pull diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21105\"\u003e#21105\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix correct example for \u003ccode\u003eS308\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21128\"\u003e#21128\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClearer error message when \u003ccode\u003eline-length\u003c/code\u003e goes beyond threshold (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21072\"\u003e#21072\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/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jvacek\"\u003e\u003ccode\u003e@​jvacek\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8737a2d5f5138d855ef4b3ff6982bd7684324eab\"\u003e\u003ccode\u003e8737a2d\u003c/code\u003e\u003c/a\u003e Bump v0.14.3 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21152\"\u003e#21152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3be3a10a2fc6ddaafc13d1f5bca566282285be5f\"\u003e\u003ccode\u003e3be3a10\u003c/code\u003e\u003c/a\u003e [ty] Don't provide completions when in class or function definition (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21146\"\u003e#21146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/13375d0e42bcf7e4dac346d8fad991b97222371d\"\u003e\u003ccode\u003e13375d0\u003c/code\u003e\u003c/a\u003e [ty] Use the top materialization of classes for narrowing in class-patterns f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c0b04d4b7cfd725a9ca1b92b8bc4d93a63c56c59\"\u003e\u003ccode\u003ec0b04d4\u003c/code\u003e\u003c/a\u003e [ty] Update \u0026quot;constraint implication\u0026quot; relation to work on constraints between ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1c7ea690a820deaa0e17ecf72593ebc4781f3752\"\u003e\u003ccode\u003e1c7ea69\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Fix \u003ccode\u003eTC003\u003c/code\u003e false positive with \u003ccode\u003efuture-annotations\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9bacd19c5a44594f44be1b0dcebd7ccf1777e633\"\u003e\u003ccode\u003e9bacd19\u003c/code\u003e\u003c/a\u003e [ty] Fix lookup of \u003ccode\u003e__new__\u003c/code\u003e on instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21147\"\u003e#21147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f0fe6d62fb6711d963c64f60b5dc8a558ffb4551\"\u003e\u003ccode\u003ef0fe6d6\u003c/code\u003e\u003c/a\u003e Fix syntax error false positive on nested alternative patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21104\"\u003e#21104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10bda3df00679c6808d8593470fe693ea8c9ae8f\"\u003e\u003ccode\u003e10bda3d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive for \u003ccode\u003eTypeVar\u003c/code\u003e with default on Python \u0026lt;3.13 (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e55bc943e5f8708aeaced34488ca5d790c388cee\"\u003e\u003ccode\u003ee55bc94\u003c/code\u003e\u003c/a\u003e [ty] Reachability and narrowing for enum methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21130\"\u003e#21130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1b0ee4677e216562033f8a2f9b006738734cb2b9\"\u003e\u003ccode\u003e1b0ee46\u003c/code\u003e\u003c/a\u003e [ty] Use \u003ccode\u003erange\u003c/code\u003e instead of custom \u003ccode\u003eIntIterable\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21138\"\u003e#21138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.1...0.14.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.405 to 1.1.407\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.407\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.8.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSoc...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/615","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/615","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/615/packages"},{"uuid":"3577239934","node_id":"PR_kwDOGE74Bs6w85XI","number":29,"state":"open","title":"chore(deps): bump the production-dependencies group with 12 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":"2025-11-01T05:05:25.000Z","updated_at":"2025-11-01T05:05:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":12,"packages":[{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"dulwich","old_version":"0.22.7","new_version":"0.22.8","repository_url":"https://github.com/dulwich/dulwich"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pkginfo","old_version":"1.12.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.1.15.22","new_version":"2025.9.11.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"virtualenv","old_version":"20.29.2","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"xattr","old_version":"1.1.4","new_version":"1.3.0","repository_url":"https://github.com/xattr/xattr"},{"name":"findpython","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/frostming/findpython"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 12 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `0.22.7` | `0.22.8` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.12.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.1.15.22` | `2025.9.11.17` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.29.2` | `20.35.4` |\n| [xattr](https://github.com/xattr/xattr) | `1.1.4` | `1.3.0` |\n| [findpython](https://github.com/frostming/findpython) | `0.6.2` | `0.6.3` |\n\nUpdates `build` from 1.2.2.post1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/891\"\u003e#891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+ (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/871\"\u003e#871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/872\"\u003e#872\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/738\"\u003e#738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/911\"\u003e#911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/824\"\u003e#824\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/918\"\u003e#918\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/870\"\u003e#870\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/915\"\u003e#915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/862\"\u003e#862\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/863\"\u003e#863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/899\"\u003e#899\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/896\"\u003e#896\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/842\"\u003e#842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/816\"\u003e#816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.0 (2025-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e\n(PR :pr:\u003ccode\u003e916\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8\n(PR :pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+\n(PR :pr:\u003ccode\u003e895\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed\n(PR :pr:\u003ccode\u003e898\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip\n(PR :pr:\u003ccode\u003e861\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn\n(PR :pr:\u003ccode\u003e892\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster\n(PR :pr:\u003ccode\u003e871\u003c/code\u003e, :pr:\u003ccode\u003e872\u003c/code\u003e, :pr:\u003ccode\u003e738\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv\n(PR :pr:\u003ccode\u003e911\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests\n(PR :pr:\u003ccode\u003e824\u003c/code\u003e, :pr:\u003ccode\u003e918\u003c/code\u003e, :pr:\u003ccode\u003e870\u003c/code\u003e, :pr:\u003ccode\u003e915\u003c/code\u003e, :pr:\u003ccode\u003e862\u003c/code\u003e, :pr:\u003ccode\u003e863\u003c/code\u003e, :pr:\u003ccode\u003e899\u003c/code\u003e, :pr:\u003ccode\u003e896\u003c/code\u003e, :pr:\u003ccode\u003e854\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata\n(PR :pr:\u003ccode\u003e914\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development\n(PR :pr:\u003ccode\u003e880\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs\n(PR :pr:\u003ccode\u003e842\u003c/code\u003e, :pr:\u003ccode\u003e816\u003c/code\u003e, :pr:\u003ccode\u003e917\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.2 (2024-09-06)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.1 (2024-03-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR :pr:\u003ccode\u003e761\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/pypa/build/commit/60e8752f69178d2b2c3563e9c8fa17aa6e11b12c\"\u003e\u003ccode\u003e60e8752\u003c/code\u003e\u003c/a\u003e chore: bump to 1.3.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/807cfba618bc4f7b13e938ffa395fffd82494383\"\u003e\u003ccode\u003e807cfba\u003c/code\u003e\u003c/a\u003e feat: add --config-json (\u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bf54ad04ffe30e7f7847ea0bcbc081b550830950\"\u003e\u003ccode\u003ebf54ad0\u003c/code\u003e\u003c/a\u003e tests: fix issues with ignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/53852df8d84d1d17afaa851d4e1cc3754676bb29\"\u003e\u003ccode\u003e53852df\u003c/code\u003e\u003c/a\u003e docs: uv example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/b983371befe0547b312aba36083b859d923d9bfc\"\u003e\u003ccode\u003eb983371\u003c/code\u003e\u003c/a\u003e tests: optional virtualenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/6cd157ad0b614a76a13374032a4f56b65048c0be\"\u003e\u003ccode\u003e6cd157a\u003c/code\u003e\u003c/a\u003e Adopt PEP 639 \u0026quot;license\u0026quot; field (\u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bdaea367438b8e5ed3c26a7497eafc007084fbec\"\u003e\u003ccode\u003ebdaea36\u003c/code\u003e\u003c/a\u003e tests: fixes for errors in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/14d6508679e2ddb4a511b4b41e972cb374e9dadb\"\u003e\u003ccode\u003e14d6508\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/59ac60e78e0dc5164355bd29eb99fb1cb2d7a59c\"\u003e\u003ccode\u003e59ac60e\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/48ebd63cd7049dff737093c462970262ae1ceed0\"\u003e\u003ccode\u003e48ebd63\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.2.2.post1...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dulwich` from 0.22.7 to 0.22.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dulwich/dulwich/releases\"\u003edulwich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edulwich-0.22.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump ruff from 0.8.3 to 0.8.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1469\"\u003ejelmer/dulwich#1469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy to 1.14.0 by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1470\"\u003ejelmer/dulwich#1470\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.8.4 to 0.8.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1475\"\u003ejelmer/dulwich#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy from 1.14.0 to 1.14.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1474\"\u003ejelmer/dulwich#1474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auto-merge for dependabot by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1476\"\u003ejelmer/dulwich#1476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.23.3 to 0.23.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1478\"\u003ejelmer/dulwich#1478\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff to 0.9.1 by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1480\"\u003ejelmer/dulwich#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.9.1 to 0.9.2 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1481\"\u003ejelmer/dulwich#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eporcelain: respect 'abbrev' argument when describing annotated-tagless repositories by \u003ca href=\"https://github.com/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1482\"\u003ejelmer/dulwich#1482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff 0.9.3 by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1486\"\u003ejelmer/dulwich#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide gpgme-config on Ubuntu by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1487\"\u003ejelmer/dulwich#1487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.9.3 to 0.9.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1489\"\u003ejelmer/dulwich#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.9.4 to 0.9.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1491\"\u003ejelmer/dulwich#1491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1493\"\u003ejelmer/dulwich#1493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocstrings for constructors of repo.Repo and repo.MemoryRepo by \u003ca href=\"https://github.com/marnanel\"\u003e\u003ccode\u003e@​marnanel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1490\"\u003ejelmer/dulwich#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd support for the git option \u0026quot;index.skipHash\u0026quot; by \u003ca href=\"https://github.com/rggjan\"\u003e\u003ccode\u003e@​rggjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1488\"\u003ejelmer/dulwich#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip-worktree support, sparse checkout impl by \u003ca href=\"https://github.com/lmmx\"\u003e\u003ccode\u003e@​lmmx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1495\"\u003ejelmer/dulwich#1495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd default values for IndexEntry by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1496\"\u003ejelmer/dulwich#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.9.6 to 0.9.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1498\"\u003ejelmer/dulwich#1498\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow passing in plain strings to tag_create by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1500\"\u003ejelmer/dulwich#1500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(cone-mode): sparse checkout cone mode support by \u003ca href=\"https://github.com/lmmx\"\u003e\u003ccode\u003e@​lmmx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1497\"\u003ejelmer/dulwich#1497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on comparison with other Git libraries by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1501\"\u003ejelmer/dulwich#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/rggjan\"\u003e\u003ccode\u003e@​rggjan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1488\"\u003ejelmer/dulwich#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lmmx\"\u003e\u003ccode\u003e@​lmmx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1495\"\u003ejelmer/dulwich#1495\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jelmer/dulwich/compare/dulwich-0.22.7...dulwich-0.22.8\"\u003ehttps://github.com/jelmer/dulwich/compare/dulwich-0.22.7...dulwich-0.22.8\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jelmer/dulwich/blob/master/NEWS\"\u003edulwich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.22.8\t2025-03-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow passing in plain strings to \u003ccode\u003edulwich.porcelain.tag_create\u003c/code\u003e\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1499\"\u003e#1499\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBump PyO3 to 0.23.5. (Jelmer Vernooĳ)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd sparse checkout cone mode support (Louis Maddox, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1497\"\u003e#1497\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd skip-worktree support. (Louis Maddox)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u0026quot;index.skipHash\u0026quot; option support. (Jan Rűegg)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRepo docstring improvements. (Marnanel Thurman)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/7a70242ca0b43184623c09549478cfec63a4d20c\"\u003e\u003ccode\u003e7a70242\u003c/code\u003e\u003c/a\u003e Release 0.22.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/ae69f1c9a4229206b6b6d871e67537732f45ac01\"\u003e\u003ccode\u003eae69f1c\u003c/code\u003e\u003c/a\u003e Update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/00875b355cf9f7639f248306b6dc9f8566fbbe72\"\u003e\u003ccode\u003e00875b3\u003c/code\u003e\u003c/a\u003e Add note on comparison with other Git libraries (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1501\"\u003e#1501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/f14adb80d07a00c18fa804e0635822d23f567471\"\u003e\u003ccode\u003ef14adb8\u003c/code\u003e\u003c/a\u003e Update pyo3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6563339f4b67b9ffabf737864f9cd753b5a4d48a\"\u003e\u003ccode\u003e6563339\u003c/code\u003e\u003c/a\u003e Fix formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/5b6a3e251d8b124bb9c6db210d7fc54d54681408\"\u003e\u003ccode\u003e5b6a3e2\u003c/code\u003e\u003c/a\u003e Add note about difference with other Git libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/94b6f838a3f711a159e8f9c9f62f960097e6ccf9\"\u003e\u003ccode\u003e94b6f83\u003c/code\u003e\u003c/a\u003e Add more typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/081d6b4c72cf70396ac49736991c8bbff2df299b\"\u003e\u003ccode\u003e081d6b4\u003c/code\u003e\u003c/a\u003e feat(cone-mode): sparse checkout cone mode support (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1497\"\u003e#1497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/9fd24eb629be20ea05012751df787f95a1fcf7ca\"\u003e\u003ccode\u003e9fd24eb\u003c/code\u003e\u003c/a\u003e Allow passing in plain strings to tag_create (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1500\"\u003e#1500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/797731f9602247d54ecfb168e480f93a07010d35\"\u003e\u003ccode\u003e797731f\u003c/code\u003e\u003c/a\u003e Fix typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dulwich/dulwich/compare/dulwich-0.22.7...dulwich-0.22.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastjsonschema` from 2.21.1 to 2.21.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 24.2 to 25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-add a test for Unicode file name parsing by \u003ca href=\"https://github.com/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to ruff 0.9.1 by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/865\"\u003epypa/packaging#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 738 Android tags by \u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(markers): support 'extras' and 'dependency_groups' markers by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\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/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/24.2...25.0\"\u003ehttps://github.com/pypa/packaging/compare/24.2...25.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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e25.0 - 2025-04-19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* PEP 751: Add support for ``extras`` and ``dependency_groups`` markers. (:issue:`885`)\n* PEP 738: Add support for Android platform tags. (:issue:`880`)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f58537628042c7f29780b9d33f31597e7fc9d664\"\u003e\u003ccode\u003ef585376\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/600ecea15b2388037b8dc94883504ca612947576\"\u003e\u003ccode\u003e600ecea\u003c/code\u003e\u003c/a\u003e Add changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3910129009b25dd1aa1fe32e644bc891188c56fe\"\u003e\u003ccode\u003e3910129\u003c/code\u003e\u003c/a\u003e support 'extras' and 'dependency_groups' markers (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8e49b4373731bffb110c9583e64ad802cb67c7ea\"\u003e\u003ccode\u003e8e49b43\u003c/code\u003e\u003c/a\u003e Add support for PEP 738 Android tags (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/e624d8edfaa28865de7b5a7da8bd59fd410e5331\"\u003e\u003ccode\u003ee624d8e\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/71f38d872a6e88b28da9d1b270f8512475bc90d4\"\u003e\u003ccode\u003e71f38d8\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9b4922dd3c26c8522d716bec79d7e0ed408631c1\"\u003e\u003ccode\u003e9b4922d\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8510bd9d3bab5571974202ec85f6ef7b0359bfaf\"\u003e\u003ccode\u003e8510bd9\u003c/code\u003e\u003c/a\u003e Upgrade to ruff 0.9.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/865\"\u003e#865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9375ec2eff48257967c97d331b9a76019e95bdb0\"\u003e\u003ccode\u003e9375ec2\u003c/code\u003e\u003c/a\u003e Re-add tests for Unicode file name parsing (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2256ed4ac261309a09daa04cc801abd7cff2e6f0\"\u003e\u003ccode\u003e2256ed4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/24.2...25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pkginfo` from 1.12.0 to 1.12.1.2\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve homebrew path detection by \u003ca href=\"https://github.com/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\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.32.5\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.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomlkit` from 0.13.2 to 0.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sdispater/tomlkit/releases\"\u003etomlkit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: register encoder's doc incorrectly mentions TypeError by \u003ca href=\"https://github.com/mathieu-lemay\"\u003e\u003ccode\u003e@​mathieu-lemay\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/384\"\u003epython-poetry/tomlkit#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/380\"\u003epython-poetry/tomlkit#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump virtualenv from 20.26.1 to 20.26.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/394\"\u003epython-poetry/tomlkit#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump jinja2 from 3.1.4 to 3.1.5 in /docs by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/388\"\u003epython-poetry/tomlkit#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/386\"\u003epython-poetry/tomlkit#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump jinja2 from 3.1.4 to 3.1.5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/395\"\u003epython-poetry/tomlkit#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/396\"\u003epython-poetry/tomlkit#396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add .item() method to retrieve the item object by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/397\"\u003epython-poetry/tomlkit#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Inconsistent newlines on Windows by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/402\"\u003epython-poetry/tomlkit#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace pytest's legacy \u003ccode\u003etmpdir\u003c/code\u003e fixture with \u003ccode\u003etmp_path\u003c/code\u003e by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/403\"\u003epython-poetry/tomlkit#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/404\"\u003epython-poetry/tomlkit#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent repeated whitespace items in arrays by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/406\"\u003epython-poetry/tomlkit#406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAot \u003cstrong\u003esetitem\u003c/strong\u003e not implemented fix by \u003ca href=\"https://github.com/Annakan\"\u003e\u003ccode\u003e@​Annakan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/413\"\u003epython-poetry/tomlkit#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/398\"\u003epython-poetry/tomlkit#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix removal of items from \u003ccode\u003eArray\u003c/code\u003es by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/409\"\u003epython-poetry/tomlkit#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: reject single keys that aren't strings by \u003ca href=\"https://github.com/savente93\"\u003e\u003ccode\u003e@​savente93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/416\"\u003epython-poetry/tomlkit#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/415\"\u003epython-poetry/tomlkit#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Invalid serialization when overwriting out-of-order table key by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/417\"\u003epython-poetry/tomlkit#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Dumping a subelement of a parsed toml fails starting on 4rd level of nesting by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/419\"\u003epython-poetry/tomlkit#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump jinja2 from 3.1.5 to 3.1.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/418\"\u003epython-poetry/tomlkit#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: ensure unique table indices when adding items to out-of-order tables by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/420\"\u003epython-poetry/tomlkit#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add newline indentation after existing items in Container class by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/421\"\u003epython-poetry/tomlkit#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Missing newline at end of file with multiple array of tables can corrupt during dumping by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/422\"\u003epython-poetry/tomlkit#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update version to 0.13.3 by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/423\"\u003epython-poetry/tomlkit#423\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/mathieu-lemay\"\u003e\u003ccode\u003e@​mathieu-lemay\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/384\"\u003epython-poetry/tomlkit#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/402\"\u003epython-poetry/tomlkit#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Annakan\"\u003e\u003ccode\u003e@​Annakan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/413\"\u003epython-poetry/tomlkit#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/savente93\"\u003e\u003ccode\u003e@​savente93\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/416\"\u003epython-poetry/tomlkit#416\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-poetry/tomlkit/compare/0.13.2...0.13.3\"\u003ehttps://github.com/python-poetry/tomlkit/compare/0.13.2...0.13.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/python-poetry/tomlkit/blob/master/CHANGELOG.md\"\u003etomlkit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.13.3] - 2025-06-05\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e.item()\u003c/code\u003e method to array and tables to retrieve an item by key. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix missing newline when parsing a separated array of tables without trailing new line. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix non-existing key error when deleting an item from an out-of-order table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure newline is added between the plain values and the first table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix repeated whitespace when removing an array item. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid serialization after removing array item if the comma is on its own line. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix serialization of a nested dotted key table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine the error message when use non-string as single key. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid serialization after overwriting a key of a out-of-order table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/8c963db32784623f8fc076ad4ef9b6b01ab0d542\"\u003e\u003ccode\u003e8c963db\u003c/code\u003e\u003c/a\u003e chore: update version to 0.13.3 (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/423\"\u003e#423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/fcb82ae1d9bd531e6c7c4a1f7fd6ddea5e41cf7b\"\u003e\u003ccode\u003efcb82ae\u003c/code\u003e\u003c/a\u003e fix: Missing newline at end of file with multiple array of tables can corrupt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/d4e1ecda48c6b8ae772a46af07d2cb5781d7f2bd\"\u003e\u003ccode\u003ed4e1ecd\u003c/code\u003e\u003c/a\u003e fix: add newline indentation after existing items in Container class (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/e3b7332de2b5bd7acf56883630a50de65c6b57ce\"\u003e\u003ccode\u003ee3b7332\u003c/code\u003e\u003c/a\u003e fix: ensure unique table indices when adding items to out-of-order tables (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/14607a516ed3594bac67f7c520d2fb2430a6ab21\"\u003e\u003ccode\u003e14607a5\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump jinja2 from 3.1.5 to 3.1.6 (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/bd31dbd8e2762c88af534ac72cb5c48644d3b4af\"\u003e\u003ccode\u003ebd31dbd\u003c/code\u003e\u003c/a\u003e fix: Dumping a subelement of a parsed toml fails starting on 4rd level of nes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/62a67082374af1c34944aecf917d5fa454a09cd3\"\u003e\u003ccode\u003e62a6708\u003c/code\u003e\u003c/a\u003e fix: Invalid serialization when overwriting out-of-order table key (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/64064f30bed25c2559ab3e6310cf49323355b3bc\"\u003e\u003ccode\u003e64064f3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/df4afc67ac465be42c05621f14306a0befb37104\"\u003e\u003ccode\u003edf4afc6\u003c/code\u003e\u003c/a\u003e Fix: reject single keys that aren't strings (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/832e85579ea9029aae53ebbb1812c537abf9dd03\"\u003e\u003ccode\u003e832e855\u003c/code\u003e\u003c/a\u003e Fix array item removal (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/409\"\u003e#409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sdispater/tomlkit/compare/0.13.2...0.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2025.1.15.22 to 2025.9.11.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/48c3b326d7b8330c92b168262a4d8f36aef1af43\"\u003e\u003ccode\u003e48c3b32\u003c/code\u003e\u003c/a\u003e Add support for Odoo 19.0 in classifiers (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/8bec1977fa18177599f61e8ad8bfc93ec41db1c6\"\u003e\u003ccode\u003e8bec197\u003c/code\u003e\u003c/a\u003e Add classifier: Framework InvenTree (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/223\"\u003e#223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/dc39dbfdf6cc79b7422d8b1bf449b1aeae9a2ab7\"\u003e\u003ccode\u003edc39dbf\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e\u0026quot;Programming Language :: Zig\u0026quot;\u003c/code\u003e classifier (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/1419a1791e89d9755f7ed054b21833cc80f70f32\"\u003e\u003ccode\u003e1419a17\u003c/code\u003e\u003c/a\u003e Add Django 6 classifiers to trove_classifiers (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/224\"\u003e#224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a764acf5d4862863a0afd2bee1ddbf4d72b73761\"\u003e\u003ccode\u003ea764acf\u003c/code\u003e\u003c/a\u003e Add classifier for CUDA 13 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/222\"\u003e#222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/b67299df973749f590c41d02329ccb9ca6af5054\"\u003e\u003ccode\u003eb67299d\u003c/code\u003e\u003c/a\u003e Add trove classifier for GraalPython (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/331838aaea0eea6374e4e51e8fe05e13bf7e4957\"\u003e\u003ccode\u003e331838a\u003c/code\u003e\u003c/a\u003e feat: add free-threading classifiers (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/00f84964bf172aa9274343291073136a1256abab\"\u003e\u003ccode\u003e00f8496\u003c/code\u003e\u003c/a\u003e Fix python usage in makefile (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/fca1f10d735d84c3cdb5dfc409959d3cb8ed2e1c\"\u003e\u003ccode\u003efca1f10\u003c/code\u003e\u003c/a\u003e Add several missing languages (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/38454c06aca1acfc3acfcf9eb63c12f2979c4fc3\"\u003e\u003ccode\u003e38454c0\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.15 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2025.1.15.22...2025.9.11.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `virtualenv` from 20.29.2 to 20.35.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/releases\"\u003evirtualenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e20.35.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.3 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2981\"\u003epypa/virtualenv#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Prevent NameError when accessing _DISTUTILS_PATCH during file ov… by \u003ca href=\"https://github.com/gracetyy\"\u003e\u003ccode\u003e@​gracetyy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2982\"\u003epypa/virtualenv#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade pip and fix 3.15 picking old wheel by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2989\"\u003epypa/virtualenv#2989\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/gracetyy\"\u003e\u003ccode\u003e@​gracetyy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2982\"\u003epypa/virtualenv#2982\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.3...20.35.4\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.3...20.35.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2976\"\u003epypa/virtualenv#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert out effort to extract discovery by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2978\"\u003epypa/virtualenv#2978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 20.35.2 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2980\"\u003epypa/virtualenv#2980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_too_many_open_files fails by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2979\"\u003epypa/virtualenv#2979\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.1...20.35.3\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.1...20.35.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2976\"\u003epypa/virtualenv#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert out effort to extract discovery by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2978\"\u003epypa/virtualenv#2978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.1...20.35.2\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.1...20.35.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.34.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2954\"\u003epypa/virtualenv#2954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: Decouple discovery module by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2956\"\u003epypa/virtualenv#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ensure creation of python3.exe and python3 on Windows by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2957\"\u003epypa/virtualenv#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Use getattr for tcl/tk library paths by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2945\"\u003epypa/virtualenv#2945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Import fs_is_case_sensitive absolutely in py_info.py by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2960\"\u003epypa/virtualenv#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2970\"\u003epypa/virtualenv#2970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 20.35.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2971\"\u003epypa/virtualenv#2971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Patch get_interpreter to handle missing cache and app_data by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2974\"\u003epypa/virtualenv#2974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix backwards incompatible changes on PythonInfo by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2975\"\u003epypa/virtualenv#2975\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst\"\u003evirtualenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20.35.4 (2025-10-28)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix race condition in ``_virtualenv.py`` when file is overwritten during import, preventing ``NameError`` when ``_DISTUTILS_PATCH`` is accessed - by :user:`gracetyy`. (:issue:`2969`)\n- Upgrade embedded wheels:\n\u003cul\u003e\n\u003cli\u003epip to \u003ccode\u003e25.3\u003c/code\u003e from \u003ccode\u003e25.2\u003c/code\u003e (:issue:\u003ccode\u003e2989\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.35.3 (2025-10-10)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept RuntimeError in \u003ccode\u003etest_too_many_open_files\u003c/code\u003e, by :user:\u003ccode\u003eesafak\u003c/code\u003e (:issue:\u003ccode\u003e2935\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.35.2 (2025-10-10)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Revert out changes related to the extraction of the discovery module - by :user:`gaborbernat`. (:issue:`2978`)\n\u003ch2\u003ev20.35.1 (2025-10-09)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePatch get_interpreter to handle missing cache and app_data - by :user:\u003ccode\u003eesafak\u003c/code\u003e (:issue:\u003ccode\u003e2972\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix backwards incompatible changes to \u003ccode\u003ePythonInfo\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e2975\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.35.0 (2025-10-08)\u003c/h2\u003e\n\u003cp\u003eFeatures - 20.35.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Add AppData and Cache protocols to discovery for decoupling - by :user:`esafak`. (:issue:`2074`)\n- Ensure python3.exe and python3 on Windows for Python 3 - by :user:`esafak`. (:issue:`2774`)\n\u003cp\u003eBugfixes - 20.35.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced direct references to tcl/tk library paths with getattr - by :user:\u003ccode\u003eesafak\u003c/code\u003e (:issue:\u003ccode\u003e2944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestore absolute import of fs_is_case_sensitive - by :user:\u003ccode\u003eesafak\u003c/code\u003e. (:issue:\u003ccode\u003e2955\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.34.0 (2025-08-13)\u003c/h2\u003e\n\u003cp\u003eFeatures - 20.34.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/03815342726b1a8b33b55b5057bfd46b1d6b74c1\"\u003e\u003ccode\u003e0381534\u003c/code\u003e\u003c/a\u003e release 20.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/25207be3cecc22049cba1989ceee87dfed9a4d67\"\u003e\u003ccode\u003e25207be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2989\"\u003e#2989\u003c/a\u003e from gaborbernat/bump-pip\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/d593841e93c401bb230646d38de480ac4ac42da4\"\u003e\u003ccode\u003ed593841\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2984\"\u003e#2984\u003c/a\u003e from pypa/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/f742f8da0a3c313d617d41a0c44aac29d4e61edd\"\u003e\u003ccode\u003ef742f8d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/0a644b0b6e0c68e89584fbce8339b366cb4cdf91\"\u003e\u003ccode\u003e0a644b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2982\"\u003e#2982\u003c/a\u003e from gracetyy/fix/distutils_patch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/2b125eb79cd4764dac26df30d9bf7b661bd74100\"\u003e\u003ccode\u003e2b125eb\u003c/code\u003e\u003c/a\u003e refactor: fix last commit according to review feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/71d5e0929dca30a429a0144e0645a6b55d2851e5\"\u003e\u003ccode\u003e71d5e09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/fd0a8342a383c126608e005e9ff0a7612e53a219\"\u003e\u003ccode\u003efd0a834\u003c/code\u003e\u003c/a\u003e refactor: fix last commit according to review feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/c5e51d4e45dbca840dac5929fbb7ed145c81c1fd\"\u003e\u003ccode\u003ec5e51d4\u003c/code\u003e\u003c/a\u003e refactor: use pytest tmp_path fixture instead of tempfile.TemporaryDirectory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/629f7b836399aa90cfe29bbcbaac547d43181d45\"\u003e\u003ccode\u003e629f7b8\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix/distutils_patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.29.2...20.35.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xattr` from 1.1.4 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xattr/xattr/releases\"\u003exattr's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml license identifier and update CI workflows for\nPython 3.14, dropping support for Python 3.8.\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/134\"\u003exattr/xattr#134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/xattr/xattr/compare/v1.2.0...v1.3.0\"\u003ehttps://github.com/xattr/xattr/compare/v1.2.0...v1.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eVersion 1.2.0 released 2025-07-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport optional default value in xattr.get()\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/130\"\u003exattr/xattr#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore macOS 13 SIP attribute 'com.apple.provenance' in tests\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/131\"\u003exattr/xattr#131\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/juanmirocks\"\u003e\u003ccode\u003e@​juanmirocks\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/xattr/xattr/pull/130\"\u003exattr/xattr#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/xattr/xattr/compare/v1.1.4...v1.2.0\"\u003ehttps://github.com/xattr/xattr/compare/v1.1.4...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xattr/xattr/blob/main/CHANGES.txt\"\u003exattr's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 1.3.0 released 2025-10-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml license identifier and update CI workflows for\nPython 3.14, dropping support for Python 3.8.\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/134\"\u003exattr/xattr#134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 1.2.0 released 2025-07-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport optional default value in xattr.get()\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/130\"\u003exattr/xattr#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore macOS 13 SIP attribute 'com.apple.provenance' in tests\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/131\"\u003exattr/xattr#131\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 1.1.4 released 2025-01-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub actions to support upload-artifact@v4 (with the side-effect of\nbuilding wheels for Python v3.13)\n\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/123\"\u003exattr/xattr#123\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/124\"\u003exattr/xattr#124\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/125\"\u003exattr/xattr#125\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/126\"\u003exattr/xattr#126\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/127\"\u003exattr/xattr#127\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 1.1.0 released 2024-02-01\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove FreeBSD compatibility by stripping \u0026quot;user.\u0026quot; prefix on attribute\nnames, but add them when listing attributes so that it behaves similarly\nto Linux (the xattr.pyxattr_compat module does not add them).\nAlso adds FreeBSD with its ports build of Python 3.9 to the CI test suite.\n\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/116\"\u003exattr/xattr#116\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/117\"\u003exattr/xattr#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 1.0.0 released 2023-11-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate test \u0026amp; build matrix and use Github Actions as a Trusted Publisher.\nDrop support for Python 3.7 and earlier (including Python 2).\nMove tests out of package.\n\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/115\"\u003exattr/xattr#115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 0.10.1 released 2022-12-03\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate github actions\n\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/112\"\u003exattr/xattr#112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated README to add reference to osxmetadata\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/110\"\u003exattr/xattr#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 0.10.0 released 2022-10-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove exec flag from tool.py\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/106\"\u003exattr/xattr#106\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/xattr/xattr/commit/29c9c064edb93ad4328c50c6da60a6330eb68297\"\u003e\u003ccode\u003e29c9c06\u003c/code\u003e\u003c/a\u003e Add date for v1.3.0 release (\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/135\"\u003e#135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/ef5c1c0ca2937b4716cd6aa5798b3a7218a08e11\"\u003e\u003ccode\u003eef5c1c0\u003c/code\u003e\u003c/a\u003e Update pyproject.toml license identifier and update CI workflows for Python 3...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/10ecf005bbbaca8b98f4d508964cd93a6a9d8254\"\u003e\u003ccode\u003e10ecf00\u003c/code\u003e\u003c/a\u003e update release date for v1.2.0 (\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/132\"\u003e#132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/482f12efae566cb314f80c771621d5a00e6dbfa0\"\u003e\u003ccode\u003e482f12e\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/xattr/xattr/issues/129\"\u003e#129\u003c/a\u003e support optional default value in xattr.get() (\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/130\"\u003e#130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/1baefbf075fe802dfa6a9b0158fd1de1cfad4b0f\"\u003e\u003ccode\u003e1baefbf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/xattr/xattr/issues/131\"\u003e#131\u003c/a\u003e from xattr/macOS-sip\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/74471882a53f5955f17251188d70388c1394895c\"\u003e\u003ccode\u003e7447188\u003c/code\u003e\u003c/a\u003e Ignore macOS 13 SIP attribute 'com.apple.provenance' in tests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/xattr/xattr/compare/v1.1.4...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `findpython` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frostming/findpython/releases\"\u003efindpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.6.3\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefresh lockfile and fix deprecation warnings  -  by \u003ca href=\"https://github.com/Secrus\"\u003e\u003ccode\u003e@​Secrus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frostming/findpython/issues/30\"\u003efrostming/findpython#30\u003c/a\u003e \u003ca href=\"https://github.com/frostming/findpython/commit/02116fe\"\u003e\u003c!-- raw HTML omitted --\u003e(02116)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer 64bit Python interpreters  -  by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/frostming/findpython/commit/cc5558b\"\u003e\u003c!-- raw HTML omitted --\u003e(cc555)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/frostming/findpython/compare/0.6.2...0.6.3\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming/findpython/commit/3ab7252d48aa650f92767cf51650423dc65708d0\"\u003e\u003ccode\u003e3ab7252\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:frostming/findpython\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming/findpython/commit/cc5558b1928a897aa77e57b7553b700c32400b3f\"\u003e\u003ccode\u003ecc5558b\u003c/code\u003e\u003c/a\u003e fix: prefer 64bit Python interpreters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming/findpython/commit/02116fecdbf351070c23539d30f720a97ce3a049\"\u003e\u003ccode\u003e02116fe\u003c/code\u003e\u003c/a\u003e fix: Refresh lockfile and fix deprecation warnings (\u003ca href=\"https://redirect.github.com/frostming/findpython/issues/30\"\u003e#30\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/frostming/findpython/compare/0.6.2...0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` w...\n\n_Description has been truncated_","html_url":"https://github.com/yokomotod/poetry/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yokomotod%2Fpoetry/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"},{"uuid":"3497919830","node_id":"PR_kwDOE9Q-D86s1MpL","number":184,"state":"open","title":"Update fastjsonschema requirement from ~=2.17.1 to ~=2.21.2 in /tests","user":"dependabot[bot]","labels":["dependencies","python","category: dependency_changes","Stale"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-09T07:12:53.000Z","updated_at":"2025-10-24T01:24:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"fastjsonschema","old_version":"~=2.17.1","new_version":"~=2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":"/tests","ecosystem":"pip"},"body":"Updates the requirements on [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.1 (2023-12-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed date format to accept only two digit months and days\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.0 (2023-11-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003euse_formats\u003c/code\u003e parameter to allow disable automatic assertions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.1 (2023-10-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazy import of urllib to improve import performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.0 (2023-07-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error message for required props - only missing are reported\u003c/li\u003e\n\u003cli\u003eFixed support of boolean schema in if-then-else application\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.1 (2023-05-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed tests in sdist\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.0 (2023-05-21)\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/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.17.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/isanghao/openvino/pull/184","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/isanghao%2Fopenvino/issues/184","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/184/packages"},{"uuid":"3497907764","node_id":"PR_kwDOD_L0vs6s1KDw","number":184,"state":"closed","title":"Update fastjsonschema requirement from ~=2.17.1 to ~=2.21.2 in /tests","user":"dependabot[bot]","labels":["dependencies","python","category: dependency_changes","Stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2025-10-31T01:40:46.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-09T07:08:08.000Z","updated_at":"2025-10-31T01:40:54.000Z","time_to_close":1881158,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"fastjsonschema","old_version":"~=2.17.1","new_version":"~=2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":"/tests","ecosystem":"pip"},"body":"Updates the requirements on [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.1 (2023-12-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed date format to accept only two digit months and days\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.0 (2023-11-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003euse_formats\u003c/code\u003e parameter to allow disable automatic assertions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.1 (2023-10-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazy import of urllib to improve import performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.0 (2023-07-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error message for required props - only missing are reported\u003c/li\u003e\n\u003cli\u003eFixed support of boolean schema in if-then-else application\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.1 (2023-05-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed tests in sdist\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.0 (2023-05-21)\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/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.17.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/artanokhov/openvino/pull/184","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/artanokhov%2Fopenvino/issues/184","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/184/packages"},{"uuid":"2877343524","node_id":"PR_kwDOLUtxJc6rgMck","number":94,"state":"open","title":"Bump the poetry-dependencies group across 1 directory with 50 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-01T08:29:15.000Z","updated_at":"2025-10-01T08:29:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":50,"packages":[{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.2","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"furo","old_version":"2025.7.19","new_version":"2025.9.25","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.17.0","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pre-commit-hooks","old_version":"5.0.0","new_version":"6.0.0","repository_url":"https://github.com/pre-commit/pre-commit-hooks"},{"name":"ruff","old_version":"0.12.4","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"xdoctest","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/Erotemic/xdoctest"},{"name":"deptry","old_version":"0.23.0","new_version":"0.23.1","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"jupytext","old_version":"1.17.2","new_version":"1.17.3","repository_url":"https://github.com/mwouts/jupytext"},{"name":"ipykernel","old_version":"6.30.0","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"anyio","old_version":"4.9.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.2"},{"name":"certifi","old_version":"2025.7.14","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"debugpy","old_version":"1.8.15","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.12","new_version":"2.6.14","repository_url":"https://github.com/pre-commit/identify"},{"name":"jsonschema","old_version":"4.25.0","new_version":"4.25.1","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":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"pandas","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pandas-stubs","old_version":"2.3.0.250703","new_version":"2.3.2.250926","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.26.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.18.15"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.14"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.2","new_version":"0.48.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250516","new_version":"2025.2.0.20250809","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.32.0","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 50 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.2` | `7.10.7` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.7.19` | `2025.9.25` |\n| [mypy](https://github.com/python/mypy) | `1.17.0` | `1.18.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [pre-commit-hooks](https://github.com/pre-commit/pre-commit-hooks) | `5.0.0` | `6.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.4` | `0.13.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.1.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.0` | `0.23.1` |\n| [jupytext](https://github.com/mwouts/jupytext) | `1.17.2` | `1.17.3` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.0` | `6.30.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.11.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.2` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.7.14` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.15` | `1.8.17` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.14` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.1` | `2.3.3` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.0.250703` | `2.3.2.250926` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.26.0` | `0.27.1` |\n| ruamel-yaml | `0.18.14` | `0.18.15` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.14` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.2` | `0.48.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250516` | `2025.2.0.20250809` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.37.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.32.0` | `20.34.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.1.0 to 25.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild gallery docker image with python3-slim and reduce image size (\u003ca href=\"https://redirect.github.com/psf/black/issues/4686\"\u003e#4686\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\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/black/commit/af0ba72a73598c76189d6dd1b21d8532255d5942\"\u003e\u003ccode\u003eaf0ba72\u003c/code\u003e\u003c/a\u003e Prepare docs for release 25.9.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4751\"\u003e#4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ffc01a027580d99401abb3197e83d50dc4f4c746\"\u003e\u003ccode\u003effc01a0\u003c/code\u003e\u003c/a\u003e Fix schema generation error caused by new click version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/626b32fe2b5387656be6694da9a4b7a3148fb892\"\u003e\u003ccode\u003e626b32f\u003c/code\u003e\u003c/a\u003e Add normalizing for \u003ccode\u003e\\r\u003c/code\u003e style newlines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/57a461258f324e33bca189b2eb49d7f7a944ffe7\"\u003e\u003ccode\u003e57a4612\u003c/code\u003e\u003c/a\u003e Fix mypy type issue (\u003ca href=\"https://redirect.github.com/psf/black/issues/4745\"\u003e#4745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4f6ad7cf8c3092e0fb4d82f54fe77ccde134468a\"\u003e\u003ccode\u003e4f6ad7c\u003c/code\u003e\u003c/a\u003e Wrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/24f516961720c5578069dee30415b776359b7be5\"\u003e\u003ccode\u003e24f5169\u003c/code\u003e\u003c/a\u003e ci: Run diff-shades on unstable instead of preview (\u003ca href=\"https://redirect.github.com/psf/black/issues/4741\"\u003e#4741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4d55e6017993ee3f0927524e8bc19ead8de9e8ed\"\u003e\u003ccode\u003e4d55e60\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0cf39efdbc3aaea455f95d31e5b42efb6bd61478\"\u003e\u003ccode\u003e0cf39ef\u003c/code\u003e\u003c/a\u003e Improve the performance of get_string_prefix (\u003ca href=\"https://redirect.github.com/psf/black/issues/4742\"\u003e#4742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1f779dec013db37475fa56a5c9939a09eab7e7d6\"\u003e\u003ccode\u003e1f779de\u003c/code\u003e\u003c/a\u003e Fix line ranges decorator edge case (\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/203fd6b5cdad975178b8174394a7f7fb13d14f02\"\u003e\u003ccode\u003e203fd6b\u003c/code\u003e\u003c/a\u003e Optimize Line string method (\u003ca href=\"https://redirect.github.com/psf/black/issues/4739\"\u003e#4739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.2 to 7.10.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\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/nedbat/coveragepy/commit/92a2af54e6bc948a9c536bd9b12bab70fb055904\"\u003e\u003ccode\u003e92a2af5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/952afdaca658d5e1acdd533c727448a0b218caf0\"\u003e\u003ccode\u003e952afda\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a301761e69da97b27662f395974d26f78fa8b2b5\"\u003e\u003ccode\u003ea301761\u003c/code\u003e\u003c/a\u003e build: riscv64 wheels (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5daff8d38786aa540ff9bec622eb3389f117f911\"\u003e\u003ccode\u003e5daff8d\u003c/code\u003e\u003c/a\u003e docs: now source is formatted with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/04bbc3acfd914fdd99ffec9873bc03bdc7329357\"\u003e\u003ccode\u003e04bbc3a\u003c/code\u003e\u003c/a\u003e docs: discuss cog in the contributing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c181b9315f59a81667da47cf3d760d0253872238\"\u003e\u003ccode\u003ec181b93\u003c/code\u003e\u003c/a\u003e build: use cog --check-fail-msg to instruct devs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/33c4ba196f49e0ee86ab0ff473c0876c0bacd5fa\"\u003e\u003ccode\u003e33c4ba1\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0744b73b6b503ccf2cb75aba095c023672b921a8\"\u003e\u003ccode\u003e0744b73\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 2 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0d5a112fc54c1d5a07f3f2ec451779808902c9af\"\u003e\u003ccode\u003e0d5a112\u003c/code\u003e\u003c/a\u003e perf: bulk narrowing to avoid N**2. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003e#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a868ed9269ca474748130f5c6360cd2aae66ffc8\"\u003e\u003ccode\u003ea868ed9\u003c/code\u003e\u003c/a\u003e docs: mention Python Discord on the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.2...7.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.7.19 to 2025.9.25\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e2025.09.25 -- Gleaming Green\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange the dark mode code back to \u003ccode\u003enative\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.07.19 -- Frozen Flame\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Switch to accessible-pygments themes\u003c/li\u003e\n\u003cli\u003e✨ Prefetch the sidebar logos\u003c/li\u003e\n\u003cli\u003e✨ Fix flickering header drop shadow on Safari\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003erel=edit\u003c/code\u003e attribute to \u0026quot;Edit this page\u0026quot; link/icon\u003c/li\u003e\n\u003cli\u003eBump NodeJS and npm dependency versions\u003c/li\u003e\n\u003cli\u003eBump Saas \u0026amp; Webpack major versions\u003c/li\u003e\n\u003cli\u003eImprove current page detection to be resilient to sticky elements above header\u003c/li\u003e\n\u003cli\u003eModernise Sass and use \u003ccode\u003e@use\u003c/code\u003e + \u003ccode\u003e@forward\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove top of code \u003ccode\u003eborder-radius\u003c/code\u003e with captions\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value\u003c/li\u003e\n\u003cli\u003eUse distinct images for light and dark mode in the documentation\u003c/li\u003e\n\u003cli\u003eUse the modern Saas Modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.08.06 -- Energetic Eminence\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 8\u003c/li\u003e\n\u003cli\u003e✨ Add smoother transitions between breakpoints\u003c/li\u003e\n\u003cli\u003eIncrease specificity of table-wrapper selector\u003c/li\u003e\n\u003cli\u003eAvoid page breaks inside paragraphs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.07.18 -- Dull Denim\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove how icons are handled and aligned.\u003c/li\u003e\n\u003cli\u003eImprove scroll event handler.\u003c/li\u003e\n\u003cli\u003eHide the copybutton by default.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003esource_view_link\u003c/code\u003e configuration handling.\u003c/li\u003e\n\u003cli\u003eFix close tag on pencil icon.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.05.06 -- Cheerful Cerulean\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add new custom icons for auto mode, reflecting the currently active theme.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/7c5f8fac52926f4854141cb5bf374c1681aedbec\"\u003e\u003ccode\u003e7c5f8fa\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.09.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/8bfdc54b2e8803450a2cb5dcab643a40b6934be2\"\u003e\u003ccode\u003e8bfdc54\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d92b62fee4cedd5b2ac1d267353d96541c9e0fb0\"\u003e\u003ccode\u003ed92b62f\u003c/code\u003e\u003c/a\u003e Switch the dark mode theme back to \u003ccode\u003enative\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/83c3446288014357bb8a7875bb81b664b7f15896\"\u003e\u003ccode\u003e83c3446\u003c/code\u003e\u003c/a\u003e Add Blender to \u0026quot;used by\u0026quot; section (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/426ea05d879ee7dfdf74ba7c8b089f73081abbfd\"\u003e\u003ccode\u003e426ea05\u003c/code\u003e\u003c/a\u003e Remove old scrollbar selectors (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d22d31c4b196a29092ac606737b6e9a7ae99273a\"\u003e\u003ccode\u003ed22d31c\u003c/code\u003e\u003c/a\u003e Remove trailing slash on void elements (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/f91944a688410f0aecd936b02f658279814ec017\"\u003e\u003ccode\u003ef91944a\u003c/code\u003e\u003c/a\u003e Fix invalid HTML5 (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/894\"\u003e#894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/a1f74d89a18ca59d231fe365bcc1616f6934ad28\"\u003e\u003ccode\u003ea1f74d8\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.17.0 to 1.18.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.18.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on recursive alias (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19845\"\u003e19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd additional guidance for stubtest errors when runtime is \u003ccode\u003eobject.__init__\u003c/code\u003e (Stephen Morton, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19733\"\u003e19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of None values in f-string expressions in mypyc (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19846\"\u003e19846\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003eAnthony Sottile\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eCharlie Denton\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eCoolCat467\u003c/li\u003e\n\u003cli\u003eDaniel Hnyk\u003c/li\u003e\n\u003cli\u003eEmily\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJahongir Qurbonov\u003c/li\u003e\n\u003cli\u003eJelle Zijlstra\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eOmer Hadari\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003ePrinceNaroliya\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eRobsdedude\u003c/li\u003e\n\u003cli\u003eSaul Shanabrook\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.17\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.17 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features and bug fixes.\nYou can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\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/python/mypy/commit/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/03fbaa941bccc3a9f8aea796d586603b67119bf2\"\u003e\u003ccode\u003e03fbaa9\u003c/code\u003e\u003c/a\u003e bump version to 1.18.1 due to wheels failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b44a1fbf0cf9fd90fd29d6bcd9f64c55dd2fd4c8\"\u003e\u003ccode\u003eb44a1fb\u003c/code\u003e\u003c/a\u003e removed +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7197a99d1aebb1b7a584f82a53c44efb7dddf136\"\u003e\u003ccode\u003e7197a99\u003c/code\u003e\u003c/a\u003e Removed Unreleased in the Changelog for Release 1.18 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19827\"\u003e#19827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.17.0...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit-hooks` from 5.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/releases\"\u003epre-commit-hooks's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit-hooks v6.0.0\u003c/h2\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e: improve error message.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1115\"\u003e#1115\u003c/a\u003e PR by \u003ca href=\"https://github.com/homebysix\"\u003e\u003ccode\u003e@​homebysix\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMigrating\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003enow requires python \u0026gt;= 3.9.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1098\"\u003e#1098\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efile-contents-sorter\u003c/code\u003e: disallow \u003ccode\u003e--unique\u003c/code\u003e and \u003ccode\u003e--ignore-case\u003c/code\u003e at the same\ntime.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1095\"\u003e#1095\u003c/a\u003e PR by \u003ca href=\"https://github.com/nemacysts\"\u003e\u003ccode\u003e@​nemacysts\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/794\"\u003e#794\u003c/a\u003e issue by \u003ca href=\"https://github.com/teksturi\"\u003e\u003ccode\u003e@​teksturi\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003echeck-byte-order-marker\u003c/code\u003e and \u003ccode\u003efix-encoding-pragma\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003echeck-byte-order-marker\u003c/code\u003e: migrate to \u003ccode\u003efix-byte-order-marker\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix-encoding-pragma\u003c/code\u003e: migrate to \u003ccode\u003epyupgrade\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1034\"\u003e#1034\u003c/a\u003e PR by \u003ca href=\"https://github.com/mxr\"\u003e\u003ccode\u003e@​mxr\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1032\"\u003e#1032\u003c/a\u003e issue by \u003ca href=\"https://github.com/mxr\"\u003e\u003ccode\u003e@​mxr\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/522\"\u003e#522\u003c/a\u003e PR by \u003ca href=\"https://github.com/jgowdy\"\u003e\u003ccode\u003e@​jgowdy\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/blob/main/CHANGELOG.md\"\u003epre-commit-hooks's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.0 - 2025-08-09\u003c/h1\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e: improve error message.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1115\"\u003e#1115\u003c/a\u003e PR by \u003ca href=\"https://github.com/homebysix\"\u003e\u003ccode\u003e@​homebysix\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMigrating\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003enow requires python \u0026gt;= 3.9.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1098\"\u003e#1098\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efile-contents-sorter\u003c/code\u003e: disallow \u003ccode\u003e--unique\u003c/code\u003e and \u003ccode\u003e--ignore-case\u003c/code\u003e at the same\ntime.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1095\"\u003e#1095\u003c/a\u003e PR by \u003ca href=\"https://github.com/nemacysts\"\u003e\u003ccode\u003e@​nemacysts\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/794\"\u003e#794\u003c/a\u003e issue by \u003ca href=\"https://github.com/teksturi\"\u003e\u003ccode\u003e@​teksturi\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003echeck-byte-order-marker\u003c/code\u003e and \u003ccode\u003efix-encoding-pragma\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003echeck-byte-order-marker\u003c/code\u003e: migrate to \u003ccode\u003efix-byte-order-marker\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix-encoding-pragma\u003c/code\u003e: migrate to \u003ccode\u003epyupgrade\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1034\"\u003e#1034\u003c/a\u003e PR by \u003ca href=\"https://github.com/mxr\"\u003e\u003ccode\u003e@​mxr\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1032\"\u003e#1032\u003c/a\u003e issue by \u003ca href=\"https://github.com/mxr\"\u003e\u003ccode\u003e@​mxr\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/522\"\u003e#522\u003c/a\u003e PR by \u003ca href=\"https://github.com/jgowdy\"\u003e\u003ccode\u003e@​jgowdy\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/3e8a8703264a2f4a69428a0aa4dcb512790b2c8c\"\u003e\u003ccode\u003e3e8a870\u003c/code\u003e\u003c/a\u003e v6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/a8f86514f4a0c0feb925ef5f99d247f599235a73\"\u003e\u003ccode\u003ea8f8651\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1185\"\u003e#1185\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/1acd88e5a4a42378eee7c7d167650c2b5607a0fb\"\u003e\u003ccode\u003e1acd88e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/1450343284c2b606aac3b406e238986ae4f5fe9d\"\u003e\u003ccode\u003e1450343\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1182\"\u003e#1182\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/b554d0acae118aecad833aaa3639a622d0f3597a\"\u003e\u003ccode\u003eb554d0a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/582b9c66e0791980685c8b80bb11e6a3df1a06ef\"\u003e\u003ccode\u003e582b9c6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1174\"\u003e#1174\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/84f8a9d27f13fe534ad65acc88776cda81ee7fed\"\u003e\u003ccode\u003e84f8a9d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/ec458dc1db98861800bd35c16a7d97e8cdb61484\"\u003e\u003ccode\u003eec458dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1166\"\u003e#1166\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/1ea82dfbb949818c4272dec7f386923af7f3990e\"\u003e\u003ccode\u003e1ea82df\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/540cd64f14fd8aa64244a9ec1873a03913d168f8\"\u003e\u003ccode\u003e540cd64\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1164\"\u003e#1164\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/compare/v5.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.4 to 0.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.13.2\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.13.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.13.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b0bdf0334e38417f8617057cd0392a4b53954120\"\u003e\u003ccode\u003eb0bdf03\u003c/code\u003e\u003c/a\u003e Bump 0.13.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20576\"\u003e#20576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7331d393c555ece88aa69f685562163790ddf611\"\u003e\u003ccode\u003e7331d39\u003c/code\u003e\u003c/a\u003e Update rooster to 0.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20575\"\u003e#20575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/529e5fa6c24ea68501adb18245eab27c701598d2\"\u003e\u003ccode\u003e529e5fa\u003c/code\u003e\u003c/a\u003e [ty] Ecosystem analyzer: timing report (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20571\"\u003e#20571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efbb80f7475c63b62981444d5c429109ff12ad32\"\u003e\u003ccode\u003eefbb80f\u003c/code\u003e\u003c/a\u003e [ty] Remove hack in protocol satisfiability check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20568\"\u003e#20568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9f3cffc65cb834661e17263245761a66f9474af0\"\u003e\u003ccode\u003e9f3cffc\u003c/code\u003e\u003c/a\u003e Add 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/21be94ac33f445d8a681babec6c56ca3d1b67156\"\u003e\u003ccode\u003e21be94a\u003c/code\u003e\u003c/a\u003e [ty] Explicitly test assignability/subtyping between unions of nominal types ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7d5dc98c193cc5cab00d557b6a392d35137d990\"\u003e\u003ccode\u003eb7d5dc9\u003c/code\u003e\u003c/a\u003e [ty] Add tests for interactions of \u003ccode\u003e@classmethod\u003c/code\u003e, \u003ccode\u003e@staticmethod\u003c/code\u003e, and proto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e1bb74b25a0f730a5baff263d753ffe03cf857b1\"\u003e\u003ccode\u003ee1bb74b\u003c/code\u003e\u003c/a\u003e [ty] Match variadic argument to variadic parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20511\"\u003e#20511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edeb45804ef9dbe348d393f3ab77288062a3c77e\"\u003e\u003ccode\u003eedeb458\u003c/code\u003e\u003c/a\u003e [ty] fallback to resolve_real_module in file_to_module (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20461\"\u003e#20461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bea92c822980b1575d58542dffa2c960393d7603\"\u003e\u003ccode\u003ebea92c8\u003c/code\u003e\u003c/a\u003e [ty] More precise type inference for dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20523\"\u003e#20523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.4...0.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merg...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-statstruk/pull/94","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-statstruk/issues/94","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/94/packages"},{"uuid":"2877038891","node_id":"PR_kwDOM8OGrs6rfCEr","number":9,"state":"open","title":"Bump the all-dependencies group across 1 directory with 39 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-10-01T06:32:13.000Z","updated_at":"2025-10-01T06:32:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":39,"packages":[{"name":"fastapi","old_version":"0.115.14","new_version":"0.118.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"alembic","old_version":"1.16.2","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.11.7","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"anyio","old_version":"4.9.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"pydantic-core","old_version":"2.33.2","new_version":"2.39.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"sqlalchemy","old_version":"2.0.41","new_version":"2.0.43","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"starlette","old_version":"0.46.2","new_version":"0.48.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"typing-inspection","old_version":"0.4.1","new_version":"0.4.2","repository_url":"https://github.com/pydantic/typing-inspection"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dulwich","old_version":"0.22.8","new_version":"0.24.2","repository_url":"https://github.com/dulwich/dulwich"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"findpython","old_version":"0.6.3","new_version":"0.7.0","repository_url":"https://github.com/frostming/findpython"},{"name":"jaraco-functools","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"more-itertools","old_version":"10.7.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"numpy","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.3.0","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pbs-installer","old_version":"2025.7.2","new_version":"2025.9.18","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"poetry","old_version":"2.1.3","new_version":"2.2.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"poetry-core","old_version":"2.1.3","new_version":"2.2.1","repository_url":"https://github.com/python-poetry/poetry-core"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"rapidfuzz","old_version":"3.13.0","new_version":"3.14.1","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"trove-classifiers","old_version":"2025.5.9.12","new_version":"2025.9.11.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"virtualenv","old_version":"20.31.2","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"xattr","old_version":"1.1.4","new_version":"1.2.0","repository_url":"https://github.com/xattr/xattr"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 39 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.14` | `0.118.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.37.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.2` | `1.16.5` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.11.9` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.11.0` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.2.4` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.33.2` | `2.39.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.41` | `2.0.43` |\n| [starlette](https://github.com/Kludex/starlette) | `0.46.2` | `0.48.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.1` | `0.4.2` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `0.22.8` | `0.24.2` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [findpython](https://github.com/frostming/findpython) | `0.6.3` | `0.7.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.2.1` | `4.3.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.7.0` | `10.8.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.1` | `2.3.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.0` | `2.3.3` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.7.2` | `2025.9.18` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.3` | `2.2.1` |\n| [poetry-core](https://github.com/python-poetry/poetry-core) | `2.1.3` | `2.2.1` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.13.0` | `3.14.1` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.5.9.12` | `2025.9.11.17` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.31.2` | `20.34.0` |\n| [xattr](https://github.com/xattr/xattr) | `1.1.4` | `1.2.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n\n\nUpdates `fastapi` from 0.115.14 to 0.118.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.118.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for \u003ccode\u003eStreamingResponse\u003c/code\u003es with dependencies with \u003ccode\u003eyield\u003c/code\u003e or \u003ccode\u003eUploadFile\u003c/code\u003es, close after the response is done. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14099\"\u003e#14099\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\u003cp\u003eBefore FastAPI 0.118.0, if you used a dependency with \u003ccode\u003eyield\u003c/code\u003e, it would run the exit code after the \u003cem\u003epath operation function\u003c/em\u003e returned but right before sending the response.\u003c/p\u003e\n\u003cp\u003eThis change also meant that if you returned a \u003ccode\u003eStreamingResponse\u003c/code\u003e, the exit code of the dependency with \u003ccode\u003eyield\u003c/code\u003e would have been already run.\u003c/p\u003e\n\u003cp\u003eFor example, if you had a database session in a dependency with \u003ccode\u003eyield\u003c/code\u003e, the \u003ccode\u003eStreamingResponse\u003c/code\u003e would not be able to use that session while streaming data because the session would have already been closed in the exit code after \u003ccode\u003eyield\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis behavior was reverted in 0.118.0, to make the exit code after \u003ccode\u003eyield\u003c/code\u003e be executed after the response is sent.\u003c/p\u003e\n\u003cp\u003eYou can read more about it in the docs for \u003ca href=\"https://fastapi.tiangolo.com/advanced/advanced-dependencies#dependencies-with-yield-httpexception-except-and-background-tasks\"\u003eAdvanced Dependencies - Dependencies with \u003ccode\u003eyield\u003c/code\u003e, \u003ccode\u003eHTTPException\u003c/code\u003e, \u003ccode\u003eexcept\u003c/code\u003e and Background Tasks\u003c/a\u003e. Including what you could do if you wanted to close a database session earlier, before returning the response to the client.\u003c/p\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update \u003ccode\u003etutorial/security/oauth2-jwt/\u003c/code\u003e to use \u003ccode\u003epwdlib\u003c/code\u003e with Argon2 instead of \u003ccode\u003epasslib\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13917\"\u003e#13917\u003c/a\u003e by \u003ca href=\"https://github.com/Neizvestnyj\"\u003e\u003ccode\u003e@​Neizvestnyj\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix typos in OAuth2 password request forms. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14112\"\u003e#14112\u003c/a\u003e by \u003ca href=\"https://github.com/alv2017\"\u003e\u003ccode\u003e@​alv2017\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update contributing guidelines for installing requirements. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14095\"\u003e#14095\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Sync German docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14098\"\u003e#14098\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14103\"\u003e#14103\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Refactor sponsor image handling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14102\"\u003e#14102\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix sponsor display issue by hiding element on image error. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14097\"\u003e#14097\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Hide sponsor badge when sponsor image is not displayed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14096\"\u003e#14096\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11194\"\u003e#11194\u003c/a\u003e by \u003ca href=\"https://github.com/thomasleveil\"\u003e\u003ccode\u003e@​thomasleveil\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9425\"\u003e#9425\u003c/a\u003e by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow array values for OpenAPI schema \u003ccode\u003etype\u003c/code\u003e field. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13639\"\u003e#13639\u003c/a\u003e by \u003ca href=\"https://github.com/sammasak\"\u003e\u003ccode\u003e@​sammasak\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add OpenAPI \u003ccode\u003eexternal_docs\u003c/code\u003e parameter to \u003ccode\u003eFastAPI\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13713\"\u003e#13713\u003c/a\u003e by \u003ca href=\"https://github.com/cmtoro\"\u003e\u003ccode\u003e@​cmtoro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9704\"\u003e#9704\u003c/a\u003e by \u003ca href=\"https://github.com/vvanglro\"\u003e\u003ccode\u003e@​vvanglro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/6039\"\u003e#6039\u003c/a\u003e by \u003ca href=\"https://github.com/MaxwellPayne\"\u003e\u003ccode\u003e@​MaxwellPayne\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003ejsonable_encoder\u003c/code\u003e alters \u003ccode\u003ejson_encoders\u003c/code\u003e of Pydantic v1 objects. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/4972\"\u003e#4972\u003c/a\u003e by \u003ca href=\"https://github.com/aboubacs\"\u003e\u003ccode\u003e@​aboubacs\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/333f1ba737be6507fc707278f6b69cf1f81efdc1\"\u003e\u003ccode\u003e333f1ba\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.118.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d5168a4a1293fbc44799fbab615a120c6fdb85e\"\u003e\u003ccode\u003e1d5168a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bfa54b406d298155edbdfe8fdd173479857d5ad6\"\u003e\u003ccode\u003ebfa54b4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e329d78f866a12893699f786f1209a666e1688e3\"\u003e\u003ccode\u003ee329d78\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for \u003ccode\u003eStreamingResponse\u003c/code\u003es with dependencies with \u003ccode\u003eyield\u003c/code\u003e or `Upl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/861b22c40897a03d2d7e5926923d962121ed5e2e\"\u003e\u003ccode\u003e861b22c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/efdafa43613f084d198e51f6858e8610beddb5ed\"\u003e\u003ccode\u003eefdafa4\u003c/code\u003e\u003c/a\u003e 📝 Update \u003ccode\u003etutorial/security/oauth2-jwt/\u003c/code\u003e to use \u003ccode\u003epwdlib\u003c/code\u003e with Argon2 instead ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/450a334253b1426aab08b4dea17b16ba8b4c098c\"\u003e\u003ccode\u003e450a334\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3eb2ee7510905447a36abe628708f102e09cfa59\"\u003e\u003ccode\u003e3eb2ee7\u003c/code\u003e\u003c/a\u003e ✏️ Fix typos in OAuth2 password request forms (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14112\"\u003e#14112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/287eb316df5b7c35dd1e5da27ca2a8d345bee8d1\"\u003e\u003ccode\u003e287eb31\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cca3341cb93cb4d0267dd8e862db9235aeaac11c\"\u003e\u003ccode\u003ecca3341\u003c/code\u003e\u003c/a\u003e 🌐 Sync German docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14098\"\u003e#14098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.14...0.118.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.3 to 0.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\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.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2658\"\u003eKludex/uvicorn#2658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2659\"\u003eKludex/uvicorn#2659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2684\"\u003eKludex/uvicorn#2684\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.35.0...0.36.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.35.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\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/uvicorn/pull/2540\"\u003eencode/uvicorn#2540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e by \u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\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/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\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/uvicorn/compare/0.34.3...0.35.0\"\u003ehttps://github.com/encode/uvicorn/compare/0.34.3...0.35.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\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/4098bcac97aa0fbda2f4e73278fbbe3b128be940\"\u003e\u003ccode\u003e4098bca\u003c/code\u003e\u003c/a\u003e Version 0.37.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8c057fa3fc407f1e5e58e6bf0b46494732ebfd1f\"\u003e\u003ccode\u003e8c057fa\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/bbe119e4e83517a230487658f864d3ad67131772\"\u003e\u003ccode\u003ebbe119e\u003c/code\u003e\u003c/a\u003e Add note about \u003ccode\u003e--timeout-keep-alive\u003c/code\u003e being measured in seconds (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2744f14c9906d90d235f9fcd5289da0c47e4abe4\"\u003e\u003ccode\u003e2744f14\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1dfb0bd885bbb0c466c19eee8bb2001bed59ca8c\"\u003e\u003ccode\u003e1dfb0bd\u003c/code\u003e\u003c/a\u003e Version 0.36.1 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2710\"\u003e#2710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3d0d46a704b772ec68596d8e1c9d9264b1499f34\"\u003e\u003ccode\u003e3d0d46a\u003c/code\u003e\u003c/a\u003e Raise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ad9e5b90dda248b08afdffd18a02b73a5b9d405c\"\u003e\u003ccode\u003ead9e5b9\u003c/code\u003e\u003c/a\u003e docs: redirect uvicorn.org to uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2705\"\u003e#2705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0e3b18c39959ad4ec8bfe6cb7e11c82664aaa702\"\u003e\u003ccode\u003e0e3b18c\u003c/code\u003e\u003c/a\u003e Version 0.36.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2704\"\u003e#2704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f84661d56eb14bbd29b995af8774c73856e3ce04\"\u003e\u003ccode\u003ef84661d\u003c/code\u003e\u003c/a\u003e chore: drop mention to scripts/publish (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2696\"\u003e#2696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dcd7e6c94e87b6ffbce378e4ada3d67654af975d\"\u003e\u003ccode\u003edcd7e6c\u003c/code\u003e\u003c/a\u003e docs: replace uvicorn.org by uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2703\"\u003e#2703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.3...0.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.16.2 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.4\u003c/h1\u003e\n\u003cp\u003eReleased: July 10, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue in new \u003ccode\u003epyproject.toml\u003c/code\u003e support where boolean values, such as\nthose used for the \u003ccode\u003erecursive_version_locations\u003c/code\u003e and \u003ccode\u003esourceless\u003c/code\u003e\nconfiguration parameters, would not be accepted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1694\"\u003e#1694\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.3\u003c/h1\u003e\n\u003cp\u003eReleased: July 8, 2025\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added new \u003ccode\u003epyproject_async\u003c/code\u003e template, combining the new \u003ccode\u003epyproject\u003c/code\u003e\ntemplate with the \u003ccode\u003easync\u003c/code\u003e template.  Pull request courtesy Alc-Alc.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1683\"\u003e#1683\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Add \u0026quot;module\u0026quot; post-write hook. This hook type is almost identical to the\nconsole_scripts hook, except it's running \u003ccode\u003epython -m black\u003c/code\u003e instead of\nusing black's \u003ccode\u003econsole_script\u003c/code\u003e. It is mainly useful for tools without\nconsole scripts (e.g. ruff), but has semantics closer to the\nconsole_scripts hook in that it finds the ruff module available to the\nrunning interpreter instead of finding an executable by path. Pull request\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.7 to 2.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 2025-09-13\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.8 2025-09-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.11.9/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.9\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.8\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/92310953c146a2ac668a0141be820c083e325f5d\"\u003e\u003ccode\u003e9231095\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f003a89eeaff35ee18f220a2c790d20536e3d0ab\"\u003e\u003ccode\u003ef003a89\u003c/code\u003e\u003c/a\u003e Backport v1.10.23 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/96b81ddaf93a1f2e19ff1609080c33de10b8d931\"\u003e\u003ccode\u003e96b81dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/966f377692194b3f1d6d5155ac78052bec0a751d\"\u003e\u003ccode\u003e966f377\u003c/code\u003e\u003c/a\u003e Fix mypy v2 plugin for upcoming \u003ccode\u003e1.18\u003c/code\u003e mypy release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4.11.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\n(\u003ccode\u003e[#975](https://github.com/agronholm/anyio/issues/975) \u0026lt;https://github.com/agronholm/anyio/pull/975\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\nkeyword argument (\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\n(\u003ccode\u003e[#971](https://github.com/agronholm/anyio/issues/971) \u0026lt;https://github.com/agronholm/anyio/pull/971\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\n(\u003ccode\u003e[#974](https://github.com/agronholm/anyio/issues/974) \u0026lt;https://github.com/agronholm/anyio/pull/974\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e\n(\u003ccode\u003e[#964](https://github.com/agronholm/anyio/issues/964) \u0026lt;https://github.com/agronholm/anyio/pull/964\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all\nsocket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e\n(\u003ccode\u003e[#857](https://github.com/agronholm/anyio/issues/857) \u0026lt;https://github.com/agronholm/anyio/issues/857\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously\nraised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise\n\u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but\n\u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this\nscenario. (\u003ccode\u003e[#671](https://github.com/agronholm/anyio/issues/671) \u0026lt;https://github.com/agronholm/anyio/issues/671\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e 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/agronholm/anyio/commit/08737af202f6610cdb8ba53fecaefd9c03269637\"\u003e\u003ccode\u003e08737af\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059\"\u003e\u003ccode\u003e8bb9fe0\u003c/code\u003e\u003c/a\u003e Fixed the inconsistent exception on sending to a closed TCP stream (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981\"\u003e\u003ccode\u003e9637093\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9\"\u003e\u003ccode\u003ef1bc6ee\u003c/code\u003e\u003c/a\u003e Fixed changelog entry formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133\"\u003e\u003ccode\u003e0b58964\u003c/code\u003e\u003c/a\u003e Mentioned the sub-interpreter support in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71\"\u003e\u003ccode\u003e1ed112c\u003c/code\u003e\u003c/a\u003e Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0\"\u003e\u003ccode\u003eaceeee0\u003c/code\u003e\u003c/a\u003e Re-enabled coverage reporting on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2\"\u003e\u003ccode\u003e6b890dc\u003c/code\u003e\u003c/a\u003e Reworded a changelog entry and added PR links to others\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd\"\u003e\u003ccode\u003e944257d\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a\"\u003e\u003ccode\u003e087975f\u003c/code\u003e\u003c/a\u003e Fixed a documentation style (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.7.0 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.7.0...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `email-validator` from 2.2.0 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JoshData/python-email-validator/releases\"\u003eemail-validator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name.\u003c/li\u003e\n\u003cli\u003eThe library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new \u003ccode\u003estrict=True\u003c/code\u003e parameter, and the overall 254 character email address length limit is still in place.\u003c/li\u003e\n\u003cli\u003eNew EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eallow_display_name=True\u003c/code\u003e, display names are now returned with Unicode NFC normalization.\u003c/li\u003e\n\u003cli\u003eTypeError is now raised if something other than str (or bytes) is passed as the email address.\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/JoshData/python-email-validator/blob/main/CHANGELOG.md\"\u003eemail-validator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0 (August 26, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name.\u003c/li\u003e\n\u003cli\u003eThe library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new \u003ccode\u003estrict=True\u003c/code\u003e parameter, and the overall 254 character email address length limit is still in place.\u003c/li\u003e\n\u003cli\u003eNew EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eallow_display_name=True\u003c/code\u003e, display names are now returned with Unicode NFC normalization.\u003c/li\u003e\n\u003cli\u003eTypeError is now raised if something other than str (or bytes) is passed as the email address.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/030a63a183a6a66450e98381ca9a23ab9769706a\"\u003e\u003ccode\u003e030a63a\u003c/code\u003e\u003c/a\u003e Version 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/e943a0f07f5c130b4a419e0cd79f705f36bf24fe\"\u003e\u003ccode\u003ee943a0f\u003c/code\u003e\u003c/a\u003e Raise TypeError when an invalid argument is passed for email, closes \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/155\"\u003e#155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/f90d256045dc1ccbcffd5514189267d14a9e3ea1\"\u003e\u003ccode\u003ef90d256\u003c/code\u003e\u003c/a\u003e Remove local part length check unless new strict flag is given, fixes \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/158\"\u003e#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/98800bac023b8713351393a5043034065f1ea6cb\"\u003e\u003ccode\u003e98800ba\u003c/code\u003e\u003c/a\u003e Add explicit checks for internationalized domain name characters invalid unde...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/936aead3bf5c608f8561954e0d2955b7f97bfdad\"\u003e\u003ccode\u003e936aead\u003c/code\u003e\u003c/a\u003e Fix final syntax checks on normalized internationalized domains checking the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/8043de49596f08d54a07e2bc7c442ced074216a6\"\u003e\u003ccode\u003e8043de4\u003c/code\u003e\u003c/a\u003e NFC-normalize display names per UTS \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/39\"\u003e#39\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/bc08faa2a74b51a9e7ba7ff4f995c0b475cb5b12\"\u003e\u003ccode\u003ebc08faa\u003c/code\u003e\u003c/a\u003e Add one-off error messages for full-width-at and small-commercial-at which ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/a1c90ab58fb0f5d969a8351a68ca15bff068527c\"\u003e\u003ccode\u003ea1c90ab\u003c/code\u003e\u003c/a\u003e Split exceptions_types.py into exceptions.py and types.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/dbcf07cc5c8066c14b6dc58d2dbb4a1e582eeefd\"\u003e\u003ccode\u003edbcf07c\u003c/code\u003e\u003c/a\u003e Change package name from using underscore to dash to match PyPi normalized pa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/7c22208ee5b82c377e960ddcea5293691eadc6cc\"\u003e\u003ccode\u003e7c22208\u003c/code\u003e\u003c/a\u003e Support ALLOW_DISPLAY_NAME and ALLOW_EMPTY_LOCAL in the CLI (\u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JoshData/python-email-validator/compare/v2.2.0...v2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.3 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.2.4 (2025-08-07)\u003c/h1\u003e\n\u003cp\u003e.. note::\u003c/p\u003e\n\u003cp\u003eThe 3.2.x series will be the last to support Python 3.9.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious small build/test changes for less common configurations (e.g.,\nbuilding CPython with assertions enabled but NOT debugging),\ncontributed by Michał Górny. Note that while greenlet will BUILD in\na free-threaded Python, it will cause the GIL to be allocated and\nused, and memory may leak. Also note that these configurations\nare not tested by this project's CI.\u003c/li\u003e\n\u003cli\u003eFix an assertion error on debug builds of Python 3.14 when using the\nexperimental JIT. See :issue:\u003ccode\u003e460 \u0026lt;https://github.com/python-greenlet/greenlet/issues/460\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/65f8da82b13a1273e55a6bfcbd1f9da09fc4eb7a\"\u003e\u003ccode\u003e65f8da8\u003c/code\u003e\u003c/a\u003e Preparing release 3.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b2c65590134322f7f4543856613cff74616a746b\"\u003e\u003ccode\u003eb2c6559\u003c/code\u003e\u003c/a\u003e Update CHANGES for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b2aa1aa1a014e0cc0c6f32a716ef3c2900ccd41f\"\u003e\u003ccode\u003eb2aa1aa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/462\"\u003e#462\u003c/a\u003e from python-greenlet/issue460\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/a1990d8cc8064e23e9e29283da2228d411093b84\"\u003e\u003ccode\u003ea1990d8\u003c/code\u003e\u003c/a\u003e Python3.14/JIT: Save and restore the PyThreadState current_executor object.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/68af251cbc534259b28cf32eaaa78031b756fd92\"\u003e\u003ccode\u003e68af251\u003c/code\u003e\u003c/a\u003e Py3.14 w/JIT: Fix leakchecks.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/74a65bd144a4b5d27e860e5db25d783259bc9e25\"\u003e\u003ccode\u003e74a65bd\u003c/code\u003e\u003c/a\u003e Various free-threaded fixes; bump tested Python version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e3e295391c096b8e3d72ac05f987650c83f763e2\"\u003e\u003ccode\u003ee3e2953\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/459\"\u003e#459\u003c/a\u003e from mgorny/py314-debug-build-failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/bdb5f44c97e59a7b47b14b64c0a33f3bed372465\"\u003e\u003ccode\u003ebdb5f44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/456\"\u003e#456\u003c/a\u003e from mgorny/setuptools-test-dep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b288f437451903962d71c6d26bbad1e1cd54070d\"\u003e\u003ccode\u003eb288f43\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/457\"\u003e#457\u003c/a\u003e from mgorny/fix-assert-test-skips\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/739cc559ac42f41f6ccbc7d556d730fd424f3be8\"\u003e\u003ccode\u003e739cc55\u003c/code\u003e\u003c/a\u003e Fix py312+ crash test skips to correctly check for assertions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.2.3...3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-core` from 2.33.2 to 2.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-core/releases\"\u003epydantic-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.39.0 2025-08-11\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: improve onboarding by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1775\"\u003epydantic/pydantic-core#1775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump pytest to 8.4 by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1781\"\u003epydantic/pydantic-core#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_computed_fields\u003c/code\u003e serialization option 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-core/pull/1780\"\u003epydantic/pydantic-core#1780\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eF...\n\n_Description has been truncated_","html_url":"https://github.com/min2ha/access-w3actdb-api/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/min2ha%2Faccess-w3actdb-api/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"2872319907","node_id":"PR_kwDOG7qlY86rNB-j","number":76,"state":"closed","title":"Bump the pip group with 42 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-30T08:16:16.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T22:46:44.000Z","updated_at":"2025-09-30T08:16:16.000Z","time_to_close":34172,"merged_at":"2025-09-30T08:16:16.000Z","merged_by":"EysteinWaade","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":42,"packages":[{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"jupyterlab","old_version":"4.4.7","new_version":"4.4.9","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"ruff","old_version":"0.13.1","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"anyio","old_version":"4.9.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.2"},{"name":"cachetools","old_version":"5.5.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"cryptography","old_version":"45.0.4","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"grpcio","old_version":"1.73.1","new_version":"1.75.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.75.1"},{"name":"ipykernel","old_version":"6.29.5","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"9.4.0","new_version":"9.6.0","repository_url":"https://github.com/ipython/ipython"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"numpy","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/numpy/numpy"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.32.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 42 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.7` | `4.4.9` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.1` | `0.13.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.11.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.2` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.2` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `46.0.1` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [grpcio](https://github.com/grpc/grpc) | `1.73.1` | `1.75.1` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.75.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `6.30.1` |\n| [ipython](https://github.com/ipython/ipython) | `9.4.0` | `9.6.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.1` | `2.3.3` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.32.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20250822` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\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 `jupyterlab` from 4.4.7 to 4.4.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyterlab/jupyterlab/releases\"\u003ejupyterlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.4.9\u003c/h2\u003e\n\u003ch2\u003e4.4.9\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.4.8...80d2a2ce152f359dbe17af364942472776b49fc7\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly dispose \u003ccode\u003eTerminalManager\u003c/code\u003e even if terminals are not available \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17876\"\u003e#17876\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scrolling to targets within notebook \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17928\"\u003e#17928\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-09-25\u0026amp;to=2025-09-26\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-09-25..2025-09-26\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​jupyterlab-probot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-09-25..2025-09-26\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2025-09-25..2025-09-26\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2025-09-25..2025-09-26\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​meeseeksmachine\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.4.8\u003c/h2\u003e\n\u003ch2\u003e4.4.8\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.4.7...526a3d7f7038ed24903bf9c88b9df3e061c65b28\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDebugger: Only send the \u003ccode\u003econfigurationDone\u003c/code\u003e message once as per the DAP \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17912\"\u003e#17912\u003c/a\u003e (\u003ca href=\"https://github.com/martinRenou\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix output prompt overlay height for large outputs \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17863\"\u003e#17863\u003c/a\u003e (\u003ca href=\"https://github.com/Meriem-BenIsmail\"\u003e\u003ccode\u003e@​Meriem-BenIsmail\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent overlay of content from other columns when renaming a file in the file browser \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17857\"\u003e#17857\u003c/a\u003e (\u003ca href=\"https://github.com/CrafterKolyan\"\u003e\u003ccode\u003e@​CrafterKolyan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix notebook toolbar item order \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17866\"\u003e#17866\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore npmjs.com in check-links \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17915\"\u003e#17915\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd JupyterCon banner and Jupyter colors \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17906\"\u003e#17906\u003c/a\u003e (\u003ca href=\"https://github.com/choldgraf\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-09-03\u0026amp;to=2025-09-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abrichet+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​brichet\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agithub-actions+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AHaudinFlorence+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​HaudinFlorence\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​jupyterlab-probot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​meeseeksmachine\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMeriem-BenIsmail+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Meriem-BenIsmail\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Awilliamstein+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​williamstein\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/9a217d024d13ef82c8de060a9fed8b430d28424a\"\u003e\u003ccode\u003e9a217d0\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.4.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/80d2a2ce152f359dbe17af364942472776b49fc7\"\u003e\u003ccode\u003e80d2a2c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17876\"\u003e#17876\u003c/a\u003e: Correctly dispose \u003ccode\u003eTerminalManager\u003c/code\u003e even if terminals are...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5c06ebf4a6db97968c86913c0c5d370ecefe1c88\"\u003e\u003ccode\u003e5c06ebf\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17928\"\u003e#17928\u003c/a\u003e: Fix scrolling to targets within notebook (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17933\"\u003e#17933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/a889bb529baa9d9ab5b533a718daa1143b998f23\"\u003e\u003ccode\u003ea889bb5\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.4.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/51c585bc57325fb7299562541054bd24e5e4119a\"\u003e\u003ccode\u003e51c585b\u003c/code\u003e\u003c/a\u003e Fix integrity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/f8841dcbf9c4629b07a80e370e2b9a32861018c7\"\u003e\u003ccode\u003ef8841dc\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/526a3d7f7038ed24903bf9c88b9df3e061c65b28\"\u003e\u003ccode\u003e526a3d7\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17915\"\u003e#17915\u003c/a\u003e: Ignore npmjs.com in check-links (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17921\"\u003e#17921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/911ff90b8b504f9cee0520294a01020593f0b3fa\"\u003e\u003ccode\u003e911ff90\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17912\"\u003e#17912\u003c/a\u003e: Debugger: Only send the \u003ccode\u003econfigurationDone\u003c/code\u003e message once ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/2d0ff31e26d6eae113376ac12d7c2ce07f1fc09d\"\u003e\u003ccode\u003e2d0ff31\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17906\"\u003e#17906\u003c/a\u003e: Add JupyterCon banner and Jupyter colors (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17908\"\u003e#17908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/276b38ca510926e48a6ed7226aaeb8b09722e428\"\u003e\u003ccode\u003e276b38c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17863\"\u003e#17863\u003c/a\u003e: Fix output prompt overlay height for large outputs (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17889\"\u003e#17889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.4.7...@jupyterlab/lsp@4.4.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.1 to 0.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.13.2\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.13.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b0bdf0334e38417f8617057cd0392a4b53954120\"\u003e\u003ccode\u003eb0bdf03\u003c/code\u003e\u003c/a\u003e Bump 0.13.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20576\"\u003e#20576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7331d393c555ece88aa69f685562163790ddf611\"\u003e\u003ccode\u003e7331d39\u003c/code\u003e\u003c/a\u003e Update rooster to 0.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20575\"\u003e#20575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/529e5fa6c24ea68501adb18245eab27c701598d2\"\u003e\u003ccode\u003e529e5fa\u003c/code\u003e\u003c/a\u003e [ty] Ecosystem analyzer: timing report (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20571\"\u003e#20571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efbb80f7475c63b62981444d5c429109ff12ad32\"\u003e\u003ccode\u003eefbb80f\u003c/code\u003e\u003c/a\u003e [ty] Remove hack in protocol satisfiability check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20568\"\u003e#20568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9f3cffc65cb834661e17263245761a66f9474af0\"\u003e\u003ccode\u003e9f3cffc\u003c/code\u003e\u003c/a\u003e Add 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/21be94ac33f445d8a681babec6c56ca3d1b67156\"\u003e\u003ccode\u003e21be94a\u003c/code\u003e\u003c/a\u003e [ty] Explicitly test assignability/subtyping between unions of nominal types ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7d5dc98c193cc5cab00d557b6a392d35137d990\"\u003e\u003ccode\u003eb7d5dc9\u003c/code\u003e\u003c/a\u003e [ty] Add tests for interactions of \u003ccode\u003e@classmethod\u003c/code\u003e, \u003ccode\u003e@staticmethod\u003c/code\u003e, and proto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e1bb74b25a0f730a5baff263d753ffe03cf857b1\"\u003e\u003ccode\u003ee1bb74b\u003c/code\u003e\u003c/a\u003e [ty] Match variadic argument to variadic parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20511\"\u003e#20511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edeb45804ef9dbe348d393f3ab77288062a3c77e\"\u003e\u003ccode\u003eedeb458\u003c/code\u003e\u003c/a\u003e [ty] fallback to resolve_real_module in file_to_module (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20461\"\u003e#20461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bea92c822980b1575d58542dffa2c960393d7603\"\u003e\u003ccode\u003ebea92c8\u003c/code\u003e\u003c/a\u003e [ty] More precise type inference for dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20523\"\u003e#20523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.1...0.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4.11.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\n(\u003ccode\u003e[#975](https://github.com/agronholm/anyio/issues/975) \u0026lt;https://github.com/agronholm/anyio/pull/975\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\nkeyword argument (\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\n(\u003ccode\u003e[#971](https://github.com/agronholm/anyio/issues/971) \u0026lt;https://github.com/agronholm/anyio/pull/971\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\n(\u003ccode\u003e[#974](https://github.com/agronholm/anyio/issues/974) \u0026lt;https://github.com/agronholm/anyio/pull/974\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e\n(\u003ccode\u003e[#964](https://github.com/agronholm/anyio/issues/964) \u0026lt;https://github.com/agronholm/anyio/pull/964\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all\nsocket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e\n(\u003ccode\u003e[#857](https://github.com/agronholm/anyio/issues/857) \u0026lt;https://github.com/agronholm/anyio/issues/857\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously\nraised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise\n\u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but\n\u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this\nscenario. (\u003ccode\u003e[#671](https://github.com/agronholm/anyio/issues/671) \u0026lt;https://github.com/agronholm/anyio/issues/671\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e 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/agronholm/anyio/commit/08737af202f6610cdb8ba53fecaefd9c03269637\"\u003e\u003ccode\u003e08737af\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059\"\u003e\u003ccode\u003e8bb9fe0\u003c/code\u003e\u003c/a\u003e Fixed the inconsistent exception on sending to a closed TCP stream (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981\"\u003e\u003ccode\u003e9637093\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9\"\u003e\u003ccode\u003ef1bc6ee\u003c/code\u003e\u003c/a\u003e Fixed changelog entry formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133\"\u003e\u003ccode\u003e0b58964\u003c/code\u003e\u003c/a\u003e Mentioned the sub-interpreter support in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71\"\u003e\u003ccode\u003e1ed112c\u003c/code\u003e\u003c/a\u003e Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0\"\u003e\u003ccode\u003eaceeee0\u003c/code\u003e\u003c/a\u003e Re-enabled coverage reporting on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2\"\u003e\u003ccode\u003e6b890dc\u003c/code\u003e\u003c/a\u003e Reworded a changelog entry and added PR links to others\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd\"\u003e\u003ccode\u003e944257d\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a\"\u003e\u003ccode\u003e087975f\u003c/code\u003e\u003c/a\u003e Fixed a documentation style (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.14.2\n\nUpdates `cachetools` from 5.5.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comm` from 0.2.2 to 0.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/comm/releases\"\u003ecomm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.3\u003c/h2\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\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/ipython/comm/blob/main/CHANGELOG.md\"\u003ecomm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/057b00a49aabb97fb3c66eedcd97f09c6481d3c8\"\u003e\u003ccode\u003e057b00a\u003c/code\u003e\u003c/a\u003e Publish 0.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003e\u003ccode\u003eec3eb43\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003etraitlets\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/ipython/comm/issues/32\"\u003e#32\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/2223501c677ac4b8289294947cb10f4f120c6117\"\u003e\u003ccode\u003e2223501\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/29\"\u003e#29\u003c/a\u003e from Carreau/secmd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/31714fec2ec02aa0fdeb34bdaddee0ed94e5b676\"\u003e\u003ccode\u003e31714fe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/706df339274bd66b887badfc755a5369223b09a4\"\u003e\u003ccode\u003e706df33\u003c/code\u003e\u003c/a\u003e Add Security.md file.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/3737dd5e8225dbcf710fb3490b01d3bdafc80294\"\u003e\u003ccode\u003e3737dd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/28\"\u003e#28\u003c/a\u003e from Carreau/pc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/265d2c07ef255785e9aef4111f1391091d7e9d7e\"\u003e\u003ccode\u003e265d2c0\u003c/code\u003e\u003c/a\u003e pre-commit updates and fixes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...v0.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 46.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.1 - 2025-09-16\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed an issue where users installing via ``pip`` on Python 3.14 development\n  versions would not properly install a dependency.\n* Fixed an issue building the free-threaded macOS 3.14 wheels.\n\u003cp\u003e.. _v46-0-0:\u003c/p\u003e\n\u003cp\u003e46.0.0 - 2025-09-16\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for Python 3.7 has been removed.\u003c/li\u003e\n\u003cli\u003eSupport for OpenSSL \u0026lt; 3.0 is deprecated and will be removed in the next\nrelease.\u003c/li\u003e\n\u003cli\u003eSupport for \u003ccode\u003ex86_64\u003c/code\u003e macOS (including publishing wheels) is deprecated\nand will be removed in two releases. We will switch to publishing an\n\u003ccode\u003earm64\u003c/code\u003e only wheel for macOS.\u003c/li\u003e\n\u003cli\u003eSupport for 32-bit Windows (including ...\n\n_Description has been truncated_","html_url":"https://github.com/navikt/pensjon-data-analyse/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/navikt%2Fpensjon-data-analyse/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"},{"uuid":"3463669336","node_id":"PR_kwDOGujB-86rB-jI","number":125,"state":"open","title":"deps-dev(deps-dev): bump fastjsonschema from 2.19.1 to 2.21.2","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T07:42:50.000Z","updated_at":"2025-10-07T08:03:51.450Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps-dev(deps-dev)","packages":[{"name":"fastjsonschema","old_version":"2.19.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":null,"ecosystem":"pip"},"body":"Bumps [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) from 2.19.1 to 2.21.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.19.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fastjsonschema\u0026package-manager=pip\u0026previous-version=2.19.1\u0026new-version=2.21.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/TensorAeroSpace/TensorAeroSpace/pull/125","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TensorAeroSpace%2FTensorAeroSpace/issues/125","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/125/packages"},{"uuid":"2850694134","node_id":"PR_kwDOG7qlY86p6iP2","number":74,"state":"open","title":"Bump the pip group across 1 directory with 42 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T18:55:12.000Z","updated_at":"2025-09-22T18:55:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":42,"packages":[{"name":"google-cloud-bigquery","old_version":"3.36.0","new_version":"3.38.0","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"google-cloud-bigquery-storage","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/googleapis/python-bigquery-storage"},{"name":"dataverk-airflow","old_version":"1.8.0","new_version":"1.8.1","repository_url":"https://github.com/navikt/dataverk-airflow"},{"name":"ruff","old_version":"0.12.12","new_version":"0.13.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"anyio","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.13.5"},{"name":"cachetools","old_version":"5.5.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"cryptography","old_version":"45.0.4","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"grpcio","old_version":"1.73.1","new_version":"1.75.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.75.0"},{"name":"ipykernel","old_version":"6.29.5","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"9.4.0","new_version":"9.5.0","repository_url":"https://github.com/ipython/ipython"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"numpy","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/numpy/numpy"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.32.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 42 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.36.0` | `3.38.0` |\n| [google-cloud-bigquery-storage](https://github.com/googleapis/python-bigquery-storage) | `2.33.0` | `2.33.1` |\n| [dataverk-airflow](https://github.com/navikt/dataverk-airflow) | `1.8.0` | `1.8.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.12` | `0.13.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.10.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.13.5` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.2` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `46.0.1` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [grpcio](https://github.com/grpc/grpc) | `1.73.1` | `1.75.0` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.75.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `6.30.1` |\n| [ipython](https://github.com/ipython/ipython) | `9.4.0` | `9.5.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.1` | `2.3.3` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.32.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20250822` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `google-cloud-bigquery` from 3.36.0 to 3.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery/releases\"\u003egoogle-cloud-bigquery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.38.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.37.0...v3.38.0\"\u003e3.38.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd additional query stats (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2270\"\u003e#2270\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/7b1b718123afd80c0f68212946e4179bcd6db67f\"\u003e7b1b718\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.37.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003e3.37.0\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003eef2740a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e33ea296\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean that the job has not completed or was unsuccessful (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2278\"\u003e#2278\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e6e88d7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e8a13c12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery/blob/main/CHANGELOG.md\"\u003egoogle-cloud-bigquery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.37.0...v3.38.0\"\u003e3.38.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd additional query stats (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2270\"\u003e#2270\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/7b1b718123afd80c0f68212946e4179bcd6db67f\"\u003e7b1b718\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003e3.37.0\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003eef2740a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e33ea296\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean that the job has not completed or was unsuccessful (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2278\"\u003e#2278\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e6e88d7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e8a13c12\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/googleapis/python-bigquery/commit/7cad6cf2f95e28b46e529f99b5c4d3cc61603ca4\"\u003e\u003ccode\u003e7cad6cf\u003c/code\u003e\u003c/a\u003e chore(main): release 3.38.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2289\"\u003e#2289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/c9aba64c1f7240f1ad2caa00d55a1a4f86bdc8a3\"\u003e\u003ccode\u003ec9aba64\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2275\"\u003e#2275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/7b1b718123afd80c0f68212946e4179bcd6db67f\"\u003e\u003ccode\u003e7b1b718\u003c/code\u003e\u003c/a\u003e feat: add additional query stats (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2270\"\u003e#2270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/4b0ef0cfcf7def138e43a22223abfcbefc330da2\"\u003e\u003ccode\u003e4b0ef0c\u003c/code\u003e\u003c/a\u003e chore(main): release 3.37.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2269\"\u003e#2269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e\u003ccode\u003e6e88d7d\u003c/code\u003e\u003c/a\u003e docs: clarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e\u003ccode\u003e33ea296\u003c/code\u003e\u003c/a\u003e fix: remove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e\u003ccode\u003e8a13c12\u003c/code\u003e\u003c/a\u003e docs: clarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/435ecdb62d8402fea317763e48934fa510ce8026\"\u003e\u003ccode\u003e435ecdb\u003c/code\u003e\u003c/a\u003e bug: updates \u003ccode\u003e__eq__\u003c/code\u003e comparison on TableConstraint (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2274\"\u003e#2274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/43527af24e56994357205b482a86b805950d2d0f\"\u003e\u003ccode\u003e43527af\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2259\"\u003e#2259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003e\u003ccode\u003eef2740a\u003c/code\u003e\u003c/a\u003e feat: updates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery-storage` from 2.33.0 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/releases\"\u003egoogle-cloud-bigquery-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003e2.33.1\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Exclude google-auth 2.24.0 and 2.25.0 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/blob/v2.33.1/CHANGELOG.md\"\u003egoogle-cloud-bigquery-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003e2.33.1\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Exclude google-auth 2.24.0 and 2.25.0 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\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/googleapis/python-bigquery-storage/commit/a7d9c212c76dc3f132f7899149a499d6790a7149\"\u003e\u003ccode\u003ea7d9c21\u003c/code\u003e\u003c/a\u003e chore(main): release 2.33.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/8170d3d84e4c0ae68b93902378e95b050543a739\"\u003e\u003ccode\u003e8170d3d\u003c/code\u003e\u003c/a\u003e chore: remove redundant code (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/979\"\u003e#979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e\u003ccode\u003e5b60dd4\u003c/code\u003e\u003c/a\u003e fix(deps): require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/978\"\u003e#978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/2a6daa16a5a6fe76901084748f909eba3ffb4c30\"\u003e\u003ccode\u003e2a6daa1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/977\"\u003e#977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/fa7c6b2b6700f25502605e67ae177ef11c49d868\"\u003e\u003ccode\u003efa7c6b2\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dataverk-airflow` from 1.8.0 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/navikt/dataverk-airflow/releases\"\u003edataverk-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump the gh group across 1 directory with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/pull/136\"\u003enavikt/dataverk-airflow#136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\"\u003ehttps://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/232348f77a9e6b4a68aafcc5200970a53b43d53c\"\u003e\u003ccode\u003e232348f\u003c/code\u003e\u003c/a\u003e handle empty args list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/78c476ea1aa4c966ba48238bca613be94335e157\"\u003e\u003ccode\u003e78c476e\u003c/code\u003e\u003c/a\u003e pass entrypoint arg from parent operators to underlying kubernetes_operator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/d26188af992f55ee60e29ae1612faec15fca45a8\"\u003e\u003ccode\u003ed26188a\u003c/code\u003e\u003c/a\u003e evaluate correct prop in test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/7f4a6d1d3c67f3bd8eb611eeaa84b434b0212796\"\u003e\u003ccode\u003e7f4a6d1\u003c/code\u003e\u003c/a\u003e remove deprecated python version from available versions + evaluate correct p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/97d902a1b858fe78c9d81f45e63b9e3ded64466c\"\u003e\u003ccode\u003e97d902a\u003c/code\u003e\u003c/a\u003e fix: default value for cmds arg to kubernetes_operator can be empty list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/49749ea6c2f3f6f0a96484284b4be98c9eb601f3\"\u003e\u003ccode\u003e49749ea\u003c/code\u003e\u003c/a\u003e add test for overriding container command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/dd48795f5b3f0f3b986188acfa1ace4a21d93a50\"\u003e\u003ccode\u003edd48795\u003c/code\u003e\u003c/a\u003e argument order for tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/60bf0dd448d3a27c6761589e0b0129be146f3bb5\"\u003e\u003ccode\u003e60bf0dd\u003c/code\u003e\u003c/a\u003e configurable container command for kubernetes_operator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/765c8068852dc418e7f8a5d469c1a4885f800eeb\"\u003e\u003ccode\u003e765c806\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/issues/136\"\u003e#136\u003c/a\u003e from navikt/dependabot/github_actions/\u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/issues/3272707161\"\u003egh-3272707161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/029e79758f48540167dc971ff8619be6328df8c5\"\u003e\u003ccode\u003e029e797\u003c/code\u003e\u003c/a\u003e build(deps): bump the gh group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.12 to 0.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect unnecessary \u003ccode\u003eNone\u003c/code\u003e default for additional key expression types (\u003ccode\u003eSIM910\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20343\"\u003e#20343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add fix for \u003ccode\u003ePTH123\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20169\"\u003e#20169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH111\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20215\"\u003e#20215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eE301\u003c/code\u003e to only trigger for functions immediately within a class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19768\"\u003e#19768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20279\"\u003e#20279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle t-strings for token-based rules and suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20357\"\u003e#20357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix truthiness: dict-only \u003ccode\u003e**\u003c/code\u003e displays not truthy for \u003ccode\u003eshell\u003c/code\u003e (\u003ccode\u003eS602\u003c/code\u003e, \u003ccode\u003eS604\u003c/code\u003e, \u003ccode\u003eS609\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20177\"\u003e#20177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix diagnostic to show correct method name for \u003ccode\u003estr.rsplit\u003c/code\u003e calls (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20459\"\u003e#20459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20197\"\u003e#20197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variable (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20427\"\u003e#20427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Prevent infinite loop with \u003ccode\u003eI002\u003c/code\u003e and \u003ccode\u003eUP026\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20327\"\u003e#20327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Recognize t-strings, generators, and lambdas in \u003ccode\u003einvalid-index-type\u003c/code\u003e (\u003ccode\u003eRUF016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20213\"\u003e#20213\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eRUF102\u003c/code\u003e] Respect rule redirects in invalid rule code detection (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark the fix for \u003ccode\u003eunreliable-callable-check\u003c/code\u003e as always unsafe (\u003ccode\u003eB004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dataclass attribute value instantiation from nested frozen dataclass (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20352\"\u003e#20352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fixes to \u003ccode\u003eoutput-format=sarif\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat panics as fatal diagnostics, sort panics last (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eanalyze.string-imports-min-dots\u003c/code\u003e to settings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20375\"\u003e#20375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md with Albumentations new repository URL (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20415\"\u003e#20415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable inline noqa for multiline strings in playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20442\"\u003e#20442\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IDrokin117\"\u003e\u003ccode\u003e@​IDrokin117\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect unnecessary \u003ccode\u003eNone\u003c/code\u003e default for additional key expression types (\u003ccode\u003eSIM910\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20343\"\u003e#20343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add fix for \u003ccode\u003ePTH123\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20169\"\u003e#20169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH111\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20215\"\u003e#20215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eE301\u003c/code\u003e to only trigger for functions immediately within a class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19768\"\u003e#19768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20279\"\u003e#20279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle t-strings for token-based rules and suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20357\"\u003e#20357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix truthiness: dict-only \u003ccode\u003e**\u003c/code\u003e displays not truthy for \u003ccode\u003eshell\u003c/code\u003e (\u003ccode\u003eS602\u003c/code\u003e, \u003ccode\u003eS604\u003c/code\u003e, \u003ccode\u003eS609\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20177\"\u003e#20177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix diagnostic to show correct method name for \u003ccode\u003estr.rsplit\u003c/code\u003e calls (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20459\"\u003e#20459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20197\"\u003e#20197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variable (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20427\"\u003e#20427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Prevent infinite loop with \u003ccode\u003eI002\u003c/code\u003e and \u003ccode\u003eUP026\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20327\"\u003e#20327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Recognize t-strings, generators, and lambdas in \u003ccode\u003einvalid-index-type\u003c/code\u003e (\u003ccode\u003eRUF016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20213\"\u003e#20213\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eRUF102\u003c/code\u003e] Respect rule redirects in invalid rule code detection (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark the fix for \u003ccode\u003eunreliable-callable-check\u003c/code\u003e as always unsafe (\u003ccode\u003eB004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dataclass attribute value instantiation from nested frozen dataclass (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20352\"\u003e#20352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fixes to \u003ccode\u003eoutput-format=sarif\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat panics as fatal diagnostics, sort panics last (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eanalyze.string-imports-min-dots\u003c/code\u003e to settings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20375\"\u003e#20375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md with Albumentations new repository URL (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20415\"\u003e#20415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable inline noqa for multiline strings in playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20442\"\u003e#20442\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IDrokin117\"\u003e\u003ccode\u003e@​IDrokin117\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/706be0a6e7e09936511198f2ff8982915520d138\"\u003e\u003ccode\u003e706be0a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epyproject.toml\u003c/code\u003e to rooster config \u003ccode\u003eversion_files\u003c/code\u003e and bump to 0.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7b40428b6a1aaad88abb05b2fa291f0ae895d379\"\u003e\u003ccode\u003e7b40428\u003c/code\u003e\u003c/a\u003e Bump 0.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20473\"\u003e#20473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9b57553681965e5cde1120f3f78ec50f8c7cd4a\"\u003e\u003ccode\u003eb9b5755\u003c/code\u003e\u003c/a\u003e Upgrade to the latest rooster version and include contributors in CHANGELOG (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4b5d67a4a4cc7193b4867dcc748c8399571eaf8\"\u003e\u003ccode\u003eb4b5d67\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0b60584b7e561f7ff7120f3ff6ecb5394522d90f\"\u003e\u003ccode\u003e0b60584\u003c/code\u003e\u003c/a\u003e Bump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/821b2f8b2e033bfff407a908e11d71126b7bef45\"\u003e\u003ccode\u003e821b2f8\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1758f26d941afac9ed497c5ad34253f3c5446d07\"\u003e\u003ccode\u003e1758f26\u003c/code\u003e\u003c/a\u003e Update rust toolchain to 1.90 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20469\"\u003e#20469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2502ff7638da3d290eacd4fcef34809faaeddfd5\"\u003e\u003ccode\u003e2502ff7\u003c/code\u003e\u003c/a\u003e [ty] Make TypeIs invariant in its type argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20428\"\u003e#20428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/144373fb3c8690043eec30a12bd5d6c55e8e9ca6\"\u003e\u003ccode\u003e144373f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/91995aa5169175de55494bc3bb59781c7a3097fc\"\u003e\u003ccode\u003e91995aa\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variabl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.12...0.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.0 to 4.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\n(\u003ccode\u003e[#975](https://github.com/agronholm/anyio/issues/975) \u0026lt;https://github.com/agronholm/anyio/pull/975\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\nkeyword argument (\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\n(\u003ccode\u003e[#971](https://github.com/agronholm/anyio/issues/971) \u0026lt;https://github.com/agronholm/anyio/pull/971\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\n(\u003ccode\u003e[#974](https://github.com/agronholm/anyio/issues/974) \u0026lt;https://github.com/agronholm/anyio/pull/974\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e\n(\u003ccode\u003e[#964](https://github.com/agronholm/anyio/issues/964) \u0026lt;https://github.com/agronholm/anyio/pull/964\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all\nsocket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e\n(\u003ccode\u003e[#857](https://github.com/agronholm/anyio/issues/857) \u0026lt;https://github.com/agronholm/anyio/issues/857\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and\n\u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e\n(\u003ccode\u003e[#818](https://github.com/agronholm/anyio/issues/818) \u0026lt;https://github.com/agronholm/anyio/issues/818\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e\nand \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things,\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/27abc2c47526feca2c1ba29a2f48d65f4281c6c2\"\u003e\u003ccode\u003e27abc2c\u003c/code\u003e\u003c/a\u003e Bumped up the version, second attempt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6\"\u003e\u003ccode\u003e0cf55b8\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345\"\u003e\u003ccode\u003eb029df5\u003c/code\u003e\u003c/a\u003e Updated the to_interpreter module to use the public API on Python 3.14 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1\"\u003e\u003ccode\u003e01f02cf\u003c/code\u003e\u003c/a\u003e Incorporated EP2025 sprint feedback and added a new section (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4\"\u003e\u003ccode\u003ed896480\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/954\"\u003e#954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c\"\u003e\u003ccode\u003e0282b81\u003c/code\u003e\u003c/a\u003e Added the BufferedByteReceiveStream.feed_data() method (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb\"\u003e\u003ccode\u003e19e5477\u003c/code\u003e\u003c/a\u003e Fixed a cancellation edge case for asyncio CapacityLimiter (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827\"\u003e\u003ccode\u003e4666df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e\"\u003e\u003ccode\u003e38c2567\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb\"\u003e\u003ccode\u003e3db73ac\u003c/code\u003e\u003c/a\u003e Add missing imports for Readcting to cancellation in worker threads example (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.13.5\n\nUpdates `cachetools` from 5.5.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comm` from 0.2.2 to 0.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/comm/releases\"\u003ecomm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.3\u003c/h2\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\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/ipython/comm/blob/main/CHANGELOG.md\"\u003ecomm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates a...\n\n_Description has been truncated_","html_url":"https://github.com/navikt/pensjon-data-analyse/pull/74","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/navikt%2Fpensjon-data-analyse/issues/74","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/74/packages"},{"uuid":"2850197108","node_id":"PR_kwDOJJPgAc6p4o50","number":123,"state":"open","title":"Bump fastjsonschema from 2.21.1 to 2.21.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T16:21:51.000Z","updated_at":"2025-09-22T16:21:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":null,"ecosystem":"pip"},"body":"Bumps [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) from 2.21.1 to 2.21.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fastjsonschema\u0026package-manager=pip\u0026previous-version=2.21.1\u0026new-version=2.21.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/CoderSales/django-postgres-jupyter-2/pull/123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2Fdjango-postgres-jupyter-2/issues/123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/123/packages"},{"uuid":"2848004712","node_id":"PR_kwDOMIHDVM6pwRpo","number":966,"state":"closed","title":"Bump the python-packages group across 1 directory with 53 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T05:34:46.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T05:49:01.000Z","updated_at":"2025-09-29T05:34:46.000Z","time_to_close":603945,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":53,"packages":[{"name":"airportsdata","old_version":"20250706","new_version":"20250909","repository_url":"https://github.com/mborsetti/airportsdata"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.13.5"},{"name":"blake3","old_version":"1.0.5","new_version":"1.0.6","repository_url":"https://github.com/oconnor663/blake3-py"},{"name":"cachetools","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"compressed-tensors","old_version":"0.10.2","new_version":"0.11.0","repository_url":"https://github.com/neuralmagic/compressed-tensors"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastapi","old_version":"0.116.1","new_version":"0.117.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fsspec","old_version":"2025.7.0","new_version":"2025.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"grpcio","old_version":"1.74.0","new_version":"1.75.0","repository_url":"https://github.com/grpc/grpc"},{"name":"huggingface-hub","old_version":"0.34.4","new_version":"0.35.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"jiter","old_version":"0.10.0","new_version":"0.11.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jsonschema","old_version":"4.25.0","new_version":"4.25.1","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":"lm-format-enforcer","old_version":"0.11.2","new_version":"0.11.3","repository_url":"https://github.com/noamgat/lm-format-enforcer"},{"name":"mistral-common","old_version":"1.8.3","new_version":"1.8.5","repository_url":"https://github.com/mistralai/mistral-common"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"multidict","old_version":"6.6.3","new_version":"6.6.4","repository_url":"https://github.com/aio-libs/multidict"},{"name":"nvidia-cudnn-cu12","old_version":"9.12.0.46","new_version":"9.13.0.50"},{"name":"nvidia-ml-py","old_version":"13.580.65","new_version":"13.580.82"},{"name":"nvidia-nccl-cu12","old_version":"2.27.7","new_version":"2.28.3"},{"name":"openai","old_version":"1.99.6","new_version":"1.108.1","repository_url":"https://github.com/openai/openai-python"},{"name":"outlines","old_version":"1.2.2","new_version":"1.2.5","repository_url":"https://github.com/dottxt-ai/outlines"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"protobuf","old_version":"6.31.1","new_version":"6.32.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pybind11","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/pybind/pybind11"},{"name":"pydantic","old_version":"2.11.7","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.38.0","new_version":"2.39.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyzmq","old_version":"27.0.1","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"ray","old_version":"2.48.0","new_version":"2.49.2","repository_url":"https://github.com/ray-project/ray"},{"name":"regex","old_version":"2025.7.34","new_version":"2025.9.18","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.27.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"sentencepiece","old_version":"0.2.0","new_version":"0.2.1","repository_url":"https://github.com/google/sentencepiece"},{"name":"smart-open","old_version":"7.3.0.post1","new_version":"7.3.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.2","new_version":"0.48.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"textual","old_version":"5.3.0","new_version":"6.1.0","repository_url":"https://github.com/Textualize/textual"},{"name":"tokenizers","old_version":"0.21.4","new_version":"0.22.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"transformers","old_version":"4.55.0","new_version":"4.56.2","repository_url":"https://github.com/huggingface/transformers"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.36.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.33.1","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"vllm","old_version":"0.10.0","new_version":"0.10.2","repository_url":"https://github.com/vllm-project/vllm"},{"name":"wrapt","old_version":"1.17.2","new_version":"1.17.3","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"xformers","old_version":"0.0.31.post1","new_version":"0.0.32.post2","repository_url":"https://github.com/facebookresearch/xformers"},{"name":"xgrammar","old_version":"0.1.22","new_version":"0.1.25","repository_url":"https://github.com/mlc-ai/xgrammar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 53 updates in the /api-server/qna-eval directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [airportsdata](https://github.com/mborsetti/airportsdata) | `20250706` | `20250909` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.13.5` |\n| [blake3](https://github.com/oconnor663/blake3-py) | `1.0.5` | `1.0.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.1.0` | `6.2.0` |\n| [compressed-tensors](https://github.com/neuralmagic/compressed-tensors) | `0.10.2` | `0.11.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.116.1` | `0.117.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.7.0` | `2025.9.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.74.0` | `1.75.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `0.34.4` | `0.35.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.10.0` | `0.11.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [lm-format-enforcer](https://github.com/noamgat/lm-format-enforcer) | `0.11.2` | `0.11.3` |\n| [mistral-common](https://github.com/mistralai/mistral-common) | `1.8.3` | `1.8.5` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.6.3` | `6.6.4` |\n| [nvidia-cudnn-cu12](https://developer.nvidia.com/cuda-zone) | `9.12.0.46` | `9.13.0.50` |\n| [nvidia-ml-py](https://forums.developer.nvidia.com) | `13.580.65` | `13.580.82` |\n| [nvidia-nccl-cu12](https://developer.nvidia.com/cuda-zone) | `2.27.7` | `2.28.3` |\n| [openai](https://github.com/openai/openai-python) | `1.99.6` | `1.108.1` |\n| [outlines](https://github.com/dottxt-ai/outlines) | `1.2.2` | `1.2.5` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.31.1` | `6.32.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [pybind11](https://github.com/pybind/pybind11) | `3.0.0` | `3.0.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.11.9` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.38.0` | `2.39.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.1` | `27.1.0` |\n| [ray](https://github.com/ray-project/ray) | `2.48.0` | `2.49.2` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2025.7.34` | `2025.9.18` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.0` | `0.27.1` |\n| [sentencepiece](https://github.com/google/sentencepiece) | `0.2.0` | `0.2.1` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.3.0.post1` | `7.3.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.2` | `0.48.0` |\n| [textual](https://github.com/Textualize/textual) | `5.3.0` | `6.1.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.21.4` | `0.22.1` |\n| [transformers](https://github.com/huggingface/transformers) | `4.55.0` | `4.56.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.36.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.33.1` | `20.34.0` |\n| [vllm](https://github.com/vllm-project/vllm) | `0.10.0` | `0.10.2` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.2` | `1.17.3` |\n| [xformers](https://github.com/facebookresearch/xformers) | `0.0.31.post1` | `0.0.32.post2` |\n| [xgrammar](https://github.com/mlc-ai/xgrammar) | `0.1.22` | `0.1.25` |\n\n\nUpdates `airportsdata` from 20250706 to 20250909\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mborsetti/airportsdata/releases\"\u003eairportsdata's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20250811\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated IATA for the following 2 airports:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEPSY/SZY, Olsztyn-Mazury Airport, Szymany, Warmia-Mazury, PL: iata added.\u003c/li\u003e\n\u003cli\u003eUCFM/BSZ, Manas International Airport, Bishkek, Chuey, KG: iata changed from \u0026quot;FRU\u0026quot; [effective 09-Aug-2025].\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated other data for the following 11 airports:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLECH/CDT, Castellón Airport, Castellón de la Plana, Comunidad Valenciana, ES: name changed from \u0026quot;Castellongitude de\nla Plana Airport\u0026quot;, subd changed from \u0026quot;Castellón\u0026quot;.\u003c/li\u003e\n\u003cli\u003eLECN    , Castellón De La Plana Airport, Castellón de La Plana, Comunidad Valenciana, ES: name changed from\n\u0026quot;Castellongitude De La Plana Airport\u0026quot;, city changed from \u0026quot;Castellongitude de La Plana\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDBG/BBM, Battambang Airport, Battambang, Battambang, KH: subd added.\u003c/li\u003e\n\u003cli\u003eVDKC    , Kompong Cham Airport, Kompong Cham, Kampong Cham, KH: subd changed from \u0026quot;Kampong-Cham\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDKH/KZC, Kampong Chhnang Airport, , Kampong Chhnang, KH: subd changed from \u0026quot;Kampong-Chhnang\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDKK/KKZ, Kaoh Kong Airport, Kaoh Kong, Koh Kong, KH: subd changed from \u0026quot;Koh-Kong\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDPP/PNH, Phnom Penh International Airport, Phnom Penh, Phnom Penh, KH: subd added.\u003c/li\u003e\n\u003cli\u003eVDSA/SAI, Siem Reap Angkor International Airport, Siem Reap, Siem Reap, KH: subd changed from \u0026quot;Siem-Reap\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDSR    , Angkor International Airport, Siem Reap, Siem Reap, KH: subd changed from \u0026quot;Siem-Reap\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDST/TNX, Stung Treng Airport, Stung Treng, Stung Treng, KH: subd changed from \u0026quot;Stung-Treng\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDTI/KTI, Techo International Airport, Krong Ta Khmau, Kandal, KH: city changed from \u0026quot;Phnom Penh\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated pre-commit.config.yaml (internal)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mborsetti/airportsdata/blob/main/CHANGELOG.rst\"\u003eairportsdata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 20250909\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the following 60 airports:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAYAF/AFR, Afore Airstrip, Afore, Oro Province, PG.\u003c/li\u003e\n\u003cli\u003eAYBL/BAA, Bialla Airport, Bialla, West New Britain, PG.\u003c/li\u003e\n\u003cli\u003eAYCG/CGC, Cape Gloucester Airport, Cape Gloucester, West New Britain, PG.\u003c/li\u003e\n\u003cli\u003eAYDA/DAO, Dahamo Airstrip, Dabo, Western, PG.\u003c/li\u003e\n\u003cli\u003eAYDB/DBP, Debepare Airport, Debepare, Western, PG.\u003c/li\u003e\n\u003cli\u003eAYSS/TDS, Sasereme Airport, Sasereme, Western Province, PG.\u003c/li\u003e\n\u003cli\u003eDIAO/ABO, Aboisso Airport, Aboisso, Sud-Comoé, CI.\u003c/li\u003e\n\u003cli\u003eEDGY/KZG, Kitzingen Airport, Kitzingen, Bayern, DE.\u003c/li\u003e\n\u003cli\u003eEDQA/QCB, Bamberg-Breitenau Airfield, Bamberg, Bavaria, DE.\u003c/li\u003e\n\u003cli\u003eFHSH/HLE, Saint Helena Airport, Saint Helena, Saint Helena, SH.\u003c/li\u003e\n\u003cli\u003eFOGA/AKE, Akiéni Airport, Akiéni, Haut-Ogooué, GA.\u003c/li\u003e\n\u003cli\u003eHCAD/AAD, Adado Airport, Adado, Galguduud, SO.\u003c/li\u003e\n\u003cli\u003eLTCU/BGG, Bingöl Airport, Bingöl, Bingöl, TR.\u003c/li\u003e\n\u003cli\u003eMYAG    , Castaway Cay Airport, Castaway Cay, North Abaco, BS.\u003c/li\u003e\n\u003cli\u003eMZPB/DGA, Pelican Beach Airstrip, Dangriga, Stann Creek, BZ.\u003c/li\u003e\n\u003cli\u003eOERS/RSI, Red Sea International Airport, Hanak, Tabuk, SA.\u003c/li\u003e\n\u003cli\u003eOOAD/AOM, Adam Airport, Adam, Ad Dakhiliyah, OM.\u003c/li\u003e\n\u003cli\u003eOPKW/KCF, Kadanwari Airport, Kadanwari, Sindh, PK.\u003c/li\u003e\n\u003cli\u003ePAGN/AGN, Angoon Seaplane Base, Angoon, Alaska, US.\u003c/li\u003e\n\u003cli\u003eRCCM/CMJ, Qimei Airport, Qimei, Penghu, TW.\u003c/li\u003e\n\u003cli\u003eSMEG/EAX, Eduard Alexander Gummels International Airport, Paramaribo, Kwatta, SR.\u003c/li\u003e\n\u003cli\u003eSPGL/CGL, Chagual Airport, Chagual, La Libertad, PE.\u003c/li\u003e\n\u003cli\u003eSWRP    , Teles Pires Lodge, Apiacás, Mato Grosso, BR.\u003c/li\u003e\n\u003cli\u003eUHTG/AEM, Amgu Airport, Amgu, Primorsky Krai, RU.\u003c/li\u003e\n\u003cli\u003eUKBM/MXR, Myrhorod Air Base, Myrhorod, Poltava Oblast, UA.\u003c/li\u003e\n\u003cli\u003eUTAN/BKN, Balkanabat International Airport, Jebel, Balkan, TM.\u003c/li\u003e\n\u003cli\u003eUTTZ/OMN, Zomin Airport, Lyaylyakul, Jizzax, UZ.\u003c/li\u003e\n\u003cli\u003eVEAP/AHA, Maa Mahamaya Airport, Ambikapur, Chhattisgarh, IN.\u003c/li\u003e\n\u003cli\u003eVLFL/PCQ, Boun Neau Airport, Boun Neau, Phongsaly, LA.\u003c/li\u003e\n\u003cli\u003eVLNK/NEU, Nong Khang Airport, Nong Khang, Houaphan, LA.\u003c/li\u003e\n\u003cli\u003eVNRG    , Gulmi Resunga Airport, Resunga, Western-Region, NP.\u003c/li\u003e\n\u003cli\u003eVQGP/GLU, Gelephu Airport, Gelephu, Sarpang, BT.\u003c/li\u003e\n\u003cli\u003eVRNT/TMF, Thimarafushi Airport, Thimarafushi, Thaa, MV.\u003c/li\u003e\n\u003cli\u003eWAGA/GXM, Kuala Kurun, Kuala Kurun, Central Kalimantan, ID.\u003c/li\u003e\n\u003cli\u003eWIJI/KRC, Depati Parbo Airport, Sungai Penuh, Jambi, ID.\u003c/li\u003e\n\u003cli\u003eYPDA/PDN, Parndana Airport, Parndana, South Australia, AU.\u003c/li\u003e\n\u003cli\u003eZBCD/CDE, Chengde Puning Airport, Chengde, Hebei, CN.\u003c/li\u003e\n\u003cli\u003eZBSG/SZH, Shuozhou Zirun Airport, Shuozhou, Shanxi, CN.\u003c/li\u003e\n\u003cli\u003eZGHC/HNI, Hechi Jinchengjiang Airport, Hechi, Guangxi, CN.\u003c/li\u003e\n\u003cli\u003eZGSG/HSC, Shaoguan Guitou Airport, Shaoguan, Guangdong, CN.\u003c/li\u003e\n\u003cli\u003eZHSY/WDS, Shiyan Wudangshan Airport, Shiyan, Hubei, CN.\u003c/li\u003e\n\u003cli\u003eZLDL/HXD, Delingha Airport, Delingha, Qinghai, CN.\u003c/li\u003e\n\u003cli\u003eZMTL/TNZ, Tosontsengel Airport, Tosontsengel, Zavkhan, MN.\u003c/li\u003e\n\u003cli\u003eZSJG/JNG, Jining Da'an Airport, Jining, Shandong, CN.\u003c/li\u003e\n\u003cli\u003eZUDA/DZH, Dazhou Jinya Airport, Dazhou, Sichuan, CN.\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/mborsetti/airportsdata/commit/9be4d37f2b72d49c093f2016e918cdffa1368244\"\u003e\u003ccode\u003e9be4d37\u003c/code\u003e\u003c/a\u003e Version 20250909\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mborsetti/airportsdata/commit/5ffd924c79b17695505d153e53e559b9b51f4e59\"\u003e\u003ccode\u003e5ffd924\u003c/code\u003e\u003c/a\u003e Version 20250908\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mborsetti/airportsdata/commit/b4a698e016a29d9a7d90b5db75e79e3edd6d7983\"\u003e\u003ccode\u003eb4a698e\u003c/code\u003e\u003c/a\u003e Version 20250907\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mborsetti/airportsdata/commit/21cb5670be03c0608edd6ad6a6590acce8850197\"\u003e\u003ccode\u003e21cb567\u003c/code\u003e\u003c/a\u003e Version 20250811\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mborsetti/airportsdata/compare/v20250706...v20250909\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.13.5\n\nUpdates `blake3` from 1.0.5 to 1.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oconnor663/blake3-py/releases\"\u003eblake3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyo3 requirement from 0.24.1 to 0.25.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/70\"\u003eoconnor663/blake3-py#70\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump PyO3/maturin-action from 1.49.1 to 1.49.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/71\"\u003eoconnor663/blake3-py#71\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.2.2 to 2.3.2 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/72\"\u003eoconnor663/blake3-py#72\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MyPy typing complaints on Python 3.8, with regression test by \u003ca href=\"https://github.com/moreati\"\u003e\u003ccode\u003e@​moreati\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/74\"\u003eoconnor663/blake3-py#74\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/moreati\"\u003e\u003ccode\u003e@​moreati\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/74\"\u003eoconnor663/blake3-py#74\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oconnor663/blake3-py/compare/1.0.5...1.0.6\"\u003ehttps://github.com/oconnor663/blake3-py/compare/1.0.5...1.0.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/65600567c99b298ff6883e9e7bb83539ffb5f71e\"\u003e\u003ccode\u003e6560056\u003c/code\u003e\u003c/a\u003e Bump version to 1.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/62244313e8356f048375ea9b11c01fa94fb1a70e\"\u003e\u003ccode\u003e6224431\u003c/code\u003e\u003c/a\u003e Fix MyPy typing complaints on Python 3.8, with regression test (\u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/issues/74\"\u003e#74\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/068e98814fc7722b71911fbba467876ecc462f2f\"\u003e\u003ccode\u003e068e988\u003c/code\u003e\u003c/a\u003e Bump softprops/action-gh-release from 2.2.2 to 2.3.2 (\u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/issues/72\"\u003e#72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/0fcb6885e68aabc42b6ec21c53c23aa82aa47358\"\u003e\u003ccode\u003e0fcb688\u003c/code\u003e\u003c/a\u003e Bump PyO3/maturin-action from 1.49.1 to 1.49.3 (\u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/issues/71\"\u003e#71\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/4ee04684ee7e4ecbf5f9edadc2b9a2d2f8114cce\"\u003e\u003ccode\u003e4ee0468\u003c/code\u003e\u003c/a\u003e add dev dependencies on pytest and numpy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/0601f160999b9b9519855e95db2af58048dd71d0\"\u003e\u003ccode\u003e0601f16\u003c/code\u003e\u003c/a\u003e Update pyo3 requirement from 0.24.1 to 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/3ea290ac54f5c817150284f0f0b587ba58d5074b\"\u003e\u003ccode\u003e3ea290a\u003c/code\u003e\u003c/a\u003e correct a type annotation in test_blake3.py\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oconnor663/blake3-py/compare/1.0.5...1.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.1.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `compressed-tensors` from 0.10.2 to 0.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/neuralmagic/compressed-tensors/releases\"\u003ecompressed-tensors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCompressed Tensors v0.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix nightly issues with python 3.11 by \u003ca href=\"https://github.com/dhuangnm\"\u003e\u003ccode\u003e@​dhuangnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/371\"\u003eneuralmagic/compressed-tensors#371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up disk space and restore ubuntu 22.04 runner by \u003ca href=\"https://github.com/dhuangnm\"\u003e\u003ccode\u003e@​dhuangnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/373\"\u003eneuralmagic/compressed-tensors#373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Update tests to use conftest file by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/367\"\u003eneuralmagic/compressed-tensors#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Hadamard Permutations by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/329\"\u003eneuralmagic/compressed-tensors#329\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Construct on GPU, cache on CPU by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/352\"\u003eneuralmagic/compressed-tensors#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eenable code coverage collection and reporting INFERENG-1049 by \u003ca href=\"https://github.com/derekk-nm\"\u003e\u003ccode\u003e@​derekk-nm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/382\"\u003eneuralmagic/compressed-tensors#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eiter_named_leaf_modules\u003c/code\u003e and \u003ccode\u003eiter_named_quantizable_modules\u003c/code\u003e by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/381\"\u003eneuralmagic/compressed-tensors#381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for compression on meta device by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/376\"\u003eneuralmagic/compressed-tensors#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd torch.float64 as a viable dtype for scales by \u003ca href=\"https://github.com/eldarkurtic\"\u003e\u003ccode\u003e@​eldarkurtic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/379\"\u003eneuralmagic/compressed-tensors#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] \u003ccode\u003eapply_transform_config\u003c/code\u003e by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/348\"\u003eneuralmagic/compressed-tensors#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Compression] Fix compression device movement in cases of indexed devices by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/384\"\u003eneuralmagic/compressed-tensors#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable code coverage report for nightly tests by \u003ca href=\"https://github.com/dhuangnm\"\u003e\u003ccode\u003e@​dhuangnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/388\"\u003eneuralmagic/compressed-tensors#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bugfix] Only quant-compress modules with weight quantization by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/387\"\u003eneuralmagic/compressed-tensors#387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Fix config serialization by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/396\"\u003eneuralmagic/compressed-tensors#396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Do not fuse div operation into hadamard matrices by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/395\"\u003eneuralmagic/compressed-tensors#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Implement multi-headed transforms by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/383\"\u003eneuralmagic/compressed-tensors#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport DeepSeekV3-style block FP8 quantization by \u003ca href=\"https://github.com/mgoin\"\u003e\u003ccode\u003e@​mgoin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/372\"\u003eneuralmagic/compressed-tensors#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] [Utils] Canonical matching utilities by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/392\"\u003eneuralmagic/compressed-tensors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bugfix] Safeguard against submodule parameter deletion in decompress_model by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/347\"\u003eneuralmagic/compressed-tensors#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix block quantization initialization by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/403\"\u003eneuralmagic/compressed-tensors#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Utils] Skip internal modules when matching by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/404\"\u003eneuralmagic/compressed-tensors#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Quantization][Decompression] Fix QDQ for dynamic quant; Update NVFP4 Compression Params by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/407\"\u003eneuralmagic/compressed-tensors#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Utils] Support matching vLLM modules by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/413\"\u003eneuralmagic/compressed-tensors#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix block size inference logic by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/411\"\u003eneuralmagic/compressed-tensors#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Serialize with tied weights by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/370\"\u003eneuralmagic/compressed-tensors#370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] [Utils] Support precision, add torch dtype validation by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/414\"\u003eneuralmagic/compressed-tensors#414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Serialize transforms config by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/412\"\u003eneuralmagic/compressed-tensors#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eError when configs are created with unrecognized fields by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/386\"\u003eneuralmagic/compressed-tensors#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erevert forbid constraint on QuantizationConfig by \u003ca href=\"https://github.com/brian-dellabetta\"\u003e\u003ccode\u003e@​brian-dellabetta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/418\"\u003eneuralmagic/compressed-tensors#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[Transform] Serialize transforms config (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/412\"\u003e#412\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/419\"\u003eneuralmagic/compressed-tensors#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded wrapper for execution device by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/417\"\u003eneuralmagic/compressed-tensors#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Serialize config (include format) by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/420\"\u003eneuralmagic/compressed-tensors#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexclude transform_config from quantization_config parse by \u003ca href=\"https://github.com/brian-dellabetta\"\u003e\u003ccode\u003e@​brian-dellabetta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/421\"\u003eneuralmagic/compressed-tensors#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Quantization] Support more than one quant-compressor by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/415\"\u003eneuralmagic/compressed-tensors#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[QuantizationScheme] Validate format by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/424\"\u003eneuralmagic/compressed-tensors#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Utils] Expand \u003ccode\u003eis_match\u003c/code\u003e by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/416\"\u003eneuralmagic/compressed-tensors#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix match.py syntax by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/426\"\u003eneuralmagic/compressed-tensors#426\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Offload] Fully remove dispatch by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/427\"\u003eneuralmagic/compressed-tensors#427\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/neuralmagic/compressed-tensors/compare/0.10.2...0.11.0\"\u003ehttps://github.com/neuralmagic/compressed-tensors/compare/0.10.2...0.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/b78eb8f6d4081f39f45f50d1284c942d1e66e0c1\"\u003e\u003ccode\u003eb78eb8f\u003c/code\u003e\u003c/a\u003e fully remove dispatch (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/a2bfc03e9d52824ba5d6d2a50c8741dd9bccd5d3\"\u003e\u003ccode\u003ea2bfc03\u003c/code\u003e\u003c/a\u003e fix match.py syntax (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/8a93d260529ceec16585b3c809924c65c54a28b3\"\u003e\u003ccode\u003e8a93d26\u003c/code\u003e\u003c/a\u003e expand is_match (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/05e00e4302abd45b695eb1a45981ae40a7de122a\"\u003e\u003ccode\u003e05e00e4\u003c/code\u003e\u003c/a\u003e add validation check on format (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/424\"\u003e#424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/fac7e4a8bf693bfd85c6e2b0326d48ac68a6c896\"\u003e\u003ccode\u003efac7e4a\u003c/code\u003e\u003c/a\u003e [Quantization] Support more than one quant-compressor (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/33c52def62ac44647fe924a05ed5115abfb0fdfd\"\u003e\u003ccode\u003e33c52de\u003c/code\u003e\u003c/a\u003e exclude transform_config from quantization_config parse (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/c1f0c2506eb0258c21b7ee2a9b34b71527302d33\"\u003e\u003ccode\u003ec1f0c25\u003c/code\u003e\u003c/a\u003e [Transform] Serialize config (include format) (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/364472a9f54001bc6edaf6a2d6e910a54ecda188\"\u003e\u003ccode\u003e364472a\u003c/code\u003e\u003c/a\u003e added wrapper for execution device (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/2154c62bdb77a1c6e6e06cc5e0e3ea25d2b614aa\"\u003e\u003ccode\u003e2154c62\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[Transform] Serialize transforms config (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/412\"\u003e#412\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/de945c644d2eb13fb3eaf85ab309085871bec35a\"\u003e\u003ccode\u003ede945c6\u003c/code\u003e\u003c/a\u003e revert forbid constraint on QuantizationConfig (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/neuralmagic/compressed-tensors/compare/0.10.2...0.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `executing` from 2.2.0 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bafb305d96572bc8fb668b6564787bbb4fff2809\"\u003e\u003ccode\u003ebafb305\u003c/code\u003e\u003c/a\u003e Add 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/5ed2ba36c2df94c91fefabd919880ffe061dc0f2\"\u003e\u003ccode\u003e5ed2ba3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexmojaki/executing/issues/97\"\u003e#97\u003c/a\u003e from alexmojaki/3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/28095d447af50c49e154de5a27b9423611462f3d\"\u003e\u003ccode\u003e28095d4\u003c/code\u003e\u003c/a\u003e refactor: review changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bb09dc677da7988a2c9555878b3727afa995b2c0\"\u003e\u003ccode\u003ebb09dc6\u003c/code\u003e\u003c/a\u003e refactor: some cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/dabc70ef5cc9a45eb57432822cdcf674af2e1db8\"\u003e\u003ccode\u003edabc70e\u003c/code\u003e\u003c/a\u003e fix: inst.argval can be a tuple for sometimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/0772f918c432d6451594bcb6ffccba62e32e794c\"\u003e\u003ccode\u003e0772f91\u003c/code\u003e\u003c/a\u003e fix: removed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bacc5b699405e6f27d882dd2a71bb0ec30167f37\"\u003e\u003ccode\u003ebacc5b6\u003c/code\u003e\u003c/a\u003e fix: moved verification for CALL_INTRINSIC_2 back to 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/ec090751a1645cd14bfcb20a79b02371ffd6172b\"\u003e\u003ccode\u003eec09075\u003c/code\u003e\u003c/a\u003e test: added sample_results for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/9405fed0769af3ee22dd4f433249f6494688638e\"\u003e\u003ccode\u003e9405fed\u003c/code\u003e\u003c/a\u003e fix: handle synthetic code to store annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/f09e4cd194aa3480c12a9f5afab3524d2a7222f2\"\u003e\u003ccode\u003ef09e4cd\u003c/code\u003e\u003c/a\u003e fix: TypeVar defaults\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexmojaki/executing/compare/v2.2.0...v2.2.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.116.1 to 0.117.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.117.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11194\"\u003e#11194\u003c/a\u003e by \u003ca href=\"https://github.com/thomasleveil\"\u003e\u003ccode\u003e@​thomasleveil\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9425\"\u003e#9425\u003c/a\u003e by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow array values for OpenAPI schema \u003ccode\u003etype\u003c/code\u003e field. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13639\"\u003e#13639\u003c/a\u003e by \u003ca href=\"https://github.com/sammasak\"\u003e\u003ccode\u003e@​sammasak\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add OpenAPI \u003ccode\u003eexternal_docs\u003c/code\u003e parameter to \u003ccode\u003eFastAPI\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13713\"\u003e#13713\u003c/a\u003e by \u003ca href=\"https://github.com/cmtoro\"\u003e\u003ccode\u003e@​cmtoro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9704\"\u003e#9704\u003c/a\u003e by \u003ca href=\"https://github.com/vvanglro\"\u003e\u003ccode\u003e@​vvanglro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/6039\"\u003e#6039\u003c/a\u003e by \u003ca href=\"https://github.com/MaxwellPayne\"\u003e\u003ccode\u003e@​MaxwellPayne\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003ejsonable_encoder\u003c/code\u003e alters \u003ccode\u003ejson_encoders\u003c/code\u003e of Pydantic v1 objects. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/4972\"\u003e#4972\u003c/a\u003e by \u003ca href=\"https://github.com/aboubacs\"\u003e\u003ccode\u003e@​aboubacs\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Reenable \u003ccode\u003eallow_arbitrary_types\u003c/code\u003e when only 1 argument is used on the API endpoint. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13694\"\u003e#13694\u003c/a\u003e by \u003ca href=\"https://github.com/rmawatson\"\u003e\u003ccode\u003e@​rmawatson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003einspect.getcoroutinefunction()\u003c/code\u003e can break testing with \u003ccode\u003eunittest.mock.patch()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14022\"\u003e#14022\u003c/a\u003e by \u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Create \u003ccode\u003edependency-cache\u003c/code\u003e dict in \u003ccode\u003esolve_dependencies\u003c/code\u003e only if \u003ccode\u003eNone\u003c/code\u003e (don't re-create if empty). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13689\"\u003e#13689\u003c/a\u003e by \u003ca href=\"https://github.com/bokshitsky\"\u003e\u003ccode\u003e@​bokshitsky\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Enable test case for duplicated headers in \u003ccode\u003etest_tutorial/test_header_params/test_tutorial003.py\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13864\"\u003e#13864\u003c/a\u003e by \u003ca href=\"https://github.com/Amogha-ark\"\u003e\u003ccode\u003e@​Amogha-ark\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📌 Pin \u003ccode\u003ehttpx\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.23.0,\u0026lt;1.0.0\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14086\"\u003e#14086\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\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add note about Cookies and JavaScript on \u003ccode\u003etutorial/cookie-params.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13510\"\u003e#13510\u003c/a\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove outdated formatting from \u003ccode\u003epath-params-numeric-validations.md\u003c/code\u003e for languages \u003ccode\u003een\u003c/code\u003e, \u003ccode\u003ees\u003c/code\u003e and \u003ccode\u003euk\u003c/code\u003e.. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14059\"\u003e#14059\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix and Improve English Documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14048\"\u003e#14048\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update prompts and German translation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14015\"\u003e#14015\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Simplify tests for response_model. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14062\"\u003e#14062\u003c/a\u003e by \u003ca href=\"https://github.com/dynamicy\"\u003e\u003ccode\u003e@​dynamicy\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🚨 Install pydantic.mypy plugin. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14081\"\u003e#14081\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add LLM test file. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14049\"\u003e#14049\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update translations script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13968\"\u003e#13968\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🛠️ Update \u003ccode\u003edocs.py generate-readme\u003c/code\u003e command to remove permalinks from headers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14055\"\u003e#14055\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update mypy to 1.14.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12970\"\u003e#12970\u003c/a\u003e by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.116.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade Starlette supported version range to \u0026gt;=0.40.0,\u0026lt;0.49.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14077\"\u003e#14077\u003c/a\u003e by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\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/784f06cb9b7cc63f6a0cb2bc9cf238473eef93e2\"\u003e\u003ccode\u003e784f06c\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.117.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b5c05893b4c43c93ff94761270ea750c0bd9e30e\"\u003e\u003ccode\u003eb5c0589\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/44fc67632bcdae4d078cb11b1a319ac122cbb06f\"\u003e\u003ccode\u003e44fc676\u003c/code\u003e\u003c/a\u003e 🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/11194\"\u003e#11194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a84001000e59ff362e74f93b8d9a58a4309dac2d\"\u003e\u003ccode\u003ea840010\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/382d083e26a28e95c731e85345c85c6dc99b08b4\"\u003e\u003ccode\u003e382d083\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.117.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a7f2dbe976bf72703376f0cd04487bfc4a849f83\"\u003e\u003ccode\u003ea7f2dbe\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f1e6f978ce10a6f9b4c668350a79462e9ac330a8\"\u003e\u003ccode\u003ef1e6f97\u003c/code\u003e\u003c/a\u003e ⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9704\"\u003e#9704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b01d5c97a09b8f4f95b9e9b0d6bc083a23cdea20\"\u003e\u003ccode\u003eb01d5c9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b51ec36f2e442495de5e4c22ae51a8f5c44917eb\"\u003e\u003ccode\u003eb51ec36\u003c/code\u003e\u003c/a\u003e ✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9425\"\u003e#9425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0bdc3ca3732e3742e094bea2b320e9774659ac38\"\u003e\u003ccode\u003e0bdc3ca\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.116.1...0.117.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastjsonschema` from 2.21.1 to 2.21.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fsspec` from 2025.7.0 to 2025.9.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/f84b99f0d1f079f990db1a219b74df66ab3e7160\"\u003e\u003ccode\u003ef84b99f\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/4e5f7686874953e9130891feb2fac69277ab4ad1\"\u003e\u003ccode\u003e4e5f768\u003c/code\u003e\u003c/a\u003e Feature, Add a lookup of Last-Modified in http file headers (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1909\"\u003e#1909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/cf798ec684e0583906dda1ae6ff40de620c01eca\"\u003e\u003ccode\u003ecf798ec\u003c/code\u003e\u003c/a\u003e Add semaphore to AsyncFileSystemWrapper (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1908\"\u003e#1908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/c46db870f828f7f1318ed7a3dc26ecc8b48b3880\"\u003e\u003ccode\u003ec46db87\u003c/code\u003e\u003c/a\u003e Ensure cached filesystems' \u003ccode\u003eprotocol\u003c/code\u003e is preserved (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1897\"\u003e#1897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/d0b1729a522ff9a47bd465bdbe430cdccfc302e2\"\u003e\u003ccode\u003ed0b1729\u003c/code\u003e\u003c/a\u003e Prevent returning cached entry if the entry is degenerate (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1873\"\u003e#1873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/81a5fd53cb17c3c1fffb9661d1563ea2d62b6d71\"\u003e\u003ccode\u003e81a5fd5\u003c/code\u003e\u003c/a\u003e PEP 639 compliance (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1894\"\u003e#1894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/1918145a02abfb647fcbde40fbfdfe0311a399d6\"\u003e\u003ccode\u003e1918145\u003c/code\u003e\u003c/a\u003e fix simplecache cat_ranges (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1892\"\u003e#1892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fsspec/filesystem_spec/compare/2025.7.0...2025.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.74.0 to 1.75.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.75.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.75.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egemini\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Security] Cherry Pick Spiffe Verification. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40515\"\u003e#40515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python][Typeguard] Part 3 - Add Typeguard to AIO stack in tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40217\"\u003e#40217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[c-ares] update version to 1.34.5. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39508\"\u003e#39508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pick_first] fix bug that caused us to stop attempting to connect. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40162\"\u003e#40162\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[OTel C++] Implement retry metrics. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39195\"\u003e#39195\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix data race by adding custom getter for \u003ccode\u003estate\u003c/code\u003e property with \u003ccode\u003e@synchronized\u003c/code\u003e locking. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40146\"\u003e#40146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egRPC Python (grpcio) now depends on \u003ccode\u003etyping-extensions~=4.13\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40137\"\u003e#40137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate musllinux wheels from \u003ccode\u003emusllinux_1_1\u003c/code\u003e to \u003ccode\u003emusllinux_1_2\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40317\"\u003e#40317\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eDropping \u003ccode\u003emusllinux_1_1\u003c/code\u003e because it reached EOL in November 2024\u003c/li\u003e\n\u003cli\u003eReference on musllinux platform tags: \u003ca href=\"https://peps.python.org/pep-0656\"\u003ePEP 656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egrpc.aio\u003c/code\u003e typehint fixes. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40215\"\u003e#40215\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40217\"\u003e#40217\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eFixes type hints for \u003ccode\u003egrpc.aio._utils\u003c/code\u003e, \u003ccode\u003egrpc.aio._call\u003c/code\u003e, \u003ccode\u003egrpc.aio._interceptor\u003c/code\u003e and \u003ccode\u003egrpc.aio._utils\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixing the error in public API: \u003ccode\u003eClientCallDetails.method\u003c/code\u003e was declared as \u003ccode\u003estr\u003c/code\u003e but always called with \u003ccode\u003ebytes\u003c/code\u003e, see \u003ca href=\"https://github.com/grpc/grpc/blob/49bc1b1098f3772b40a46325250fe5c6f4df1eeb/src/python/grpcio/grpc/aio/_interceptor.py#L628\"\u003eInterceptedUnaryUnaryCall\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixes issue \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40325\"\u003e#40325\u003c/a\u003e with grpcio failing to install on all non-Mac Apple devices internal builds. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40347\"\u003e#40347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuby\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby: Mark credential object in channel. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40394\"\u003e#40394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Ruby] Add rubygems support for linux-gnu and linux-musl platforms. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39549\"\u003e#39549\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease v1.75.0-pre1\u003c/h2\u003e\n\u003cp\u003eThis is a prerelease of gRPC Core 1.75.0 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis prerelease contains refinements, improvements, and bug fixes.\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/grpc/grpc/commit/093085cc925e0d5aa6e92bc29e917f9bdc00add2\"\u003e\u003ccode\u003e093085c\u003c/code\u003e\u003c/a\u003e [build] Fix objc boringssl build backport (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40689\"\u003e#40689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/8c4561390682661cc8cb374ec734bc1d742ad88f\"\u003e\u003ccode\u003e8c45613\u003c/code\u003e\u003c/a\u003e [release] Bump release version on v1.75.x branch to v1.75.0 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40644\"\u003e#40644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/d382f40fc0f6cb522cb81f2e9ac111621687c598\"\u003e\u003ccode\u003ed382f40\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python][Support 3.14] Enable Python 3.14 interpreters for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e6db4753b460db05f69883ca73191587a4732976\"\u003e\u003ccode\u003ee6db475\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Build manylinux aarch64 without cross-compilation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/77dc9c8c2595b2d4c031dfa58a4174ea33105908\"\u003e\u003ccode\u003e77dc9c8\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Updating rules_python to 1.5.4 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40607\"\u003e#40607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/8f360868932daaa226de0aaaab8f2d7f524d1ddc\"\u003e\u003ccode\u003e8f36086\u003c/code\u003e\u003c/a\u003e [Security] Cherry Pick Spiffe Verification (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40515\"\u003e#40515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/5b393ee09ce97d9d328503ae8d96c65a42f9fff5\"\u003e\u003ccode\u003e5b393ee\u003c/code\u003e\u003c/a\u003e [release] Bump release version on v1.75.x to v1.75.0-pre1 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40485\"\u003e#40485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e8715ed185a885d14472ad7c6cdc83d4161be029\"\u003e\u003ccode\u003ee8715ed\u003c/code\u003e\u003c/a\u003e Bump core version to 50.0.0 for upcoming release (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40422\"\u003e#40422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/509f9fb6762b68505af3f854555ae86305be3c60\"\u003e\u003ccode\u003e509f9fb\u003c/code\u003e\u003c/a\u003e [PH2] WritePath Integration (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40404\"\u003e#40404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/8a66132dc88c624ccba64883f2d643885dc0d08c\"\u003e\u003ccode\u003e8a66132\u003c/code\u003e\u003c/a\u003e [PH2][Settings] Adding documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.74.0...v1.75.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 0.34.4 to 0.35.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v0.35.0] Announcing Scheduled Jobs: run cron jobs on GPU on the Hugging Face Hub!\u003c/h2\u003e\n\u003ch2\u003eScheduled Jobs\u003c/h2\u003e\n\u003cp\u003eIn \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases/tag/v0.34.0\"\u003ev0.34.0 release\u003c/a\u003e, we announced Jobs, a new way to run compute on the Hugging Face Hub. In this new release, we are announcing \u003cstrong\u003eScheduled Jobs\u003c/strong\u003e to run Jobs on a regular basic. Think \u0026quot;cron jobs running on GPU\u0026quot;.\u003c/p\u003e\n\u003cp\u003eThis comes with a fully-fledge CLI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehf jobs scheduled run @hourly ubuntu echo hello world\nhf jobs scheduled run \u0026quot;0 * * * *\u0026quot; ubuntu echo hello world\nhf jobs scheduled ps -a\nhf jobs scheduled inspect \u0026lt;id\u0026gt;\nhf jobs scheduled delete \u0026lt;id\u0026gt;\nhf jobs scheduled suspend \u0026lt;id\u0026gt;\nhf jobs scheduled resume \u0026lt;id\u0026gt;\nhf jobs scheduled uv run @weekly train.py\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Add scheduled jobs api  by \u003ca href=\"https://github.com/lhoestq\"\u003e\u003ccode\u003e@​lhoestq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3306\"\u003e#3306\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIt is now possible to run a command with \u003ccode\u003euv run\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehf jobs uv run --with lighteval -s HF_TOKEN lighteval endpoint inference-providers \u0026quot;model_name=openai/gpt-oss-20b,provider=groq\u0026quot; \u0026quot;lighteval|gsm8k|0|0\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Support commands in \u003ccode\u003ehf jobs uv run\u003c/code\u003e  by \u003ca href=\"https://github.com/lhoestq\"\u003e\u003ccode\u003e@​lhoestq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3303\"\u003e#3303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSome other improvements have been added to the existing Jobs API for a better UX.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Use current or stored token in a Job secrets  by \u003ca href=\"https://github.com/lhoestq\"\u003e\u003ccode\u003e@​lhoestq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3272\"\u003e#3272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate uv image  by \u003ca href=\"https://github.com/lhoestq\"\u003e\u003ccode\u003e@​lhoestq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3270\"\u003e#3270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAnd finally, Jobs documentation has been updated with new examples (and some fixes):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix bash history expansion in hf jobs example  by \u003ca href=\"https://github.com/nyuuzyou\"\u003e\u003ccode\u003e@​nyuuzyou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3277\"\u003e#3277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd timeout info to Jobs guide docs  by \u003ca href=\"https://github.com/davanstrien\"\u003e\u003ccode\u003e@​davanstrien\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3281\"\u003e#3281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jobs.md  by \u003ca href=\"https://github.com/tre3x\"\u003e\u003ccode\u003e@​tre3x\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3297\"\u003e#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add link to uv-scripts organization in Jobs guide  by \u003ca href=\"https://github.com/davanstrien\"\u003e\u003ccode\u003e@​davanstrien\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3326\"\u003e#3326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add Docker images section for UV scripts in Jobs guide  by \u003ca href=\"https://github.com/davanstrien\"\u003e\u003ccode\u003e@​davanstrien\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3327\"\u003e#3327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add link to TRL jobs training documentation  by \u003ca href=\"https://github.com/davanstrien\"\u003e\u003ccode\u003e@​davanstrien\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3330\"\u003e#3330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCLI updates\u003c/h2\u003e\n\u003cp\u003eIn addition to the Scheduled Jobs, some improvements have been added to the \u003ccode\u003ehf\u003c/code\u003e CLI.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] print help if no command provided  by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3262\"\u003e#3262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate hf auth whoami output  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/3274\"\u003e#3274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 'user:' prefix to whoami command output for consistency  by \u003ca href=\"https://github.com/gary149\"\u003e\u003ccode\u003e@​gary149\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3267\"\u003e#3267\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/0f12365eb66305b280a7a3b65c48faf9f24f8c20\"\u003e\u003ccode\u003e0f12365\u003c/code\u003e\u003c/a\u003e Release: v0.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/041c05e1735057d4a527eee14109f32678f087e3\"\u003e\u003ccode\u003e041c05e\u003c/code\u003e\u003c/a\u003e Release: v0.35.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/69874aee426afb54dfadd6de0ec1924462be0400\"\u003e\u003ccode\u003e69874ae\u003c/code\u003e\u003c/a\u003e Add PublicAI provider (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3367\"\u003e#3367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/6faf2d72ca9a9efe259c79588ccef7add0d5093a\"\u003e\u003ccode\u003e6faf2d7\u003c/code\u003e\u003c/a\u003e feat: add scaleway inference provider (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3356\"\u003e#3356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/490865e0c693bbe9ac297a7b3ddc0f6f10e7bc8d\"\u003e\u003ccode\u003e490865e\u003c/code\u003e\u003c/a\u003e docs: minor typo fix in /en/guides/manage-cache (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3353\"\u003e#3353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/92351f3fde4105f5e76fe9a32d1944a1149afbc2\"\u003e\u003ccode\u003e92351f3\u003c/code\u003e\u003c/a\u003e Return early in \u003ccode\u003eis_jsonable\u003c/code\u003e if circular reference (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3348\"\u003e#3348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/22d9c553f3548a71caf1a8b8265cb3f80f06ea80\"\u003e\u003ccode\u003e22d9c55\u003c/code\u003e\u003c/a\u003e Add reasoning field in chat completion output (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3338\"\u003e#3338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/6378f83ca85a615dc9f1a3ea6e362c8c97245a88\"\u003e\u003ccode\u003e6378f83\u003c/code\u003e\u003c/a\u003e Update error message to improve shell compatibility (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3333\"\u003e#3333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/8a6d4e3e8d18c7ba4ecf8b2e9a23138e48257330\"\u003e\u003ccode\u003e8a6d4e3\u003c/code\u003e\u003c/a\u003e docs: add link to TRL jobs training documentation (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3330\"\u003e#3330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a8a38a523e91999a6785f4bcb7c4b2d772686e9a\"\u003e\u003ccode\u003ea8a38a5\u003c/code\u003e\u003c/a\u003e [Jobs] Add scheduled jobs api (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3306\"\u003e#3306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v0.34.4...v0.35.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jiter` from 0.10.0 to 0.11.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/a0907638427b307d1bf22ff080e002d961f905d7\"\u003e\u003ccode\u003ea090763\u003c/code\u003e\u003c/a\u003e release: 0.11.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/69fc9cbeb4d819db3ba21862306c666db42a69bb\"\u003e\u003ccode\u003e69fc9cb\u003c/code\u003e\u003c/a\u003e update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/d60dc160ed9c767d450c6c084129ea414795822c\"\u003e\u003ccode\u003ed60dc16\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003epython_parse\u003c/code\u003e to take ref to self (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/42694169c5ffa5cefcd55884097f6256d1dc94af\"\u003e\u003ccode\u003e4269416\u003c/code\u003e\u003c/a\u003e Fix linux-x86_64 build matrix (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/9c3d0a5856e80fd41ecaf359925a3bca1eccaf70\"\u003e\u003ccode\u003e9c3d0a5\u003c/code\u003e\u003c/a\u003e Trailing bytes partial mode (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/211\"\u003e#211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/2f89404cce89a5d4eda593556830f3983ab4b8a0\"\u003e\u003ccode\u003e2f89404\u003c/code\u003e\u003c/a\u003e Build wheels for GraalPy (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/15cdc69e617a29658ea6b85d29b2c2a789a10951\"\u003e\u003ccode\u003e15cdc69\u003c/code\u003e\u003c/a\u003e fix lint reported in Rust 1.89 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/a05dc811fd5f0ac64e0e90e4fe4a295c4ddb7751\"\u003e\u003ccode\u003ea05dc81\u003c/code\u003e\u003c/a\u003e Keep strings before incomplete escape sequences in partial mode (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/e6b28c2c44eb4ad4d805bdbad1d93b66135e69ce\"\u003e\u003ccode\u003ee6b28c2\u003c/code\u003e\u003c/a\u003e Set up criterion for benchmarking (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/197\"\u003e#197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/961d830d95bf89fbec59528d5d4233fd2427ed60\"\u003e\u003ccode\u003e961d830\u003c/code\u003e\u003c/a\u003e Impl \u003ccode\u003estd::error::Error\u003c/code\u003e for error types (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/205\"\u003e#205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/jiter/compare/v0.10.0...v0.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.25.0 to 4.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidator\u003c/code\u003e protocol init to match runtime by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1396\"\u003epython-jsonschema/jsonschema#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.25.0...v4.25.1\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.25.0...v4.25.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/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.25.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix an incorrect required argument in the \u003ccode\u003eValidator\u003c/code\u003e protocol's type annotations (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1396\"\u003e#1396\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/331c38425519b69118d22ebe467ad230fb83a010\"\u003e\u003ccode\u003e331c384\u003c/code\u003e\u003c/a\u003e Add the fix to the changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/c1ec0a645e913e83de95995f6efbbd358676abf6\"\u003e\u003ccode\u003ec1ec0a6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1398\"\u003e#1398\u003c/a\u003e from python-jsonschema/dependabot/github_actions/ast...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/8e7d594faff13f8f663b306a0d86bea0ce5de6cb\"\u003e\u003ccode\u003e8e7d594\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1399\"\u003e#1399\u003c/a\u003e from python-jsonschema/dependabot/github_actions/act...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/460f4fae42664773160f56ccc843a4fcea34f7cf\"\u003e\u003ccode\u003e460f4fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1396\"\u003e#1396\u003c/a\u003e from sirosen/improve-protocol-init-signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1e58409b71a9696b7bf9938ae8a3a48ef95ab29e\"\u003e\u003ccode\u003e1e58409\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/64bc2171624ef201bdbf35e47780348ce30935c5\"\u003e\u003ccode\u003e64bc217\u003c/code\u003e\u003c/a\u003e Add a typing test for the Validator protocol\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6c25741bff889477680f9b0d1aa967ae35c38f43\"\u003e\u003ccode\u003e6c25741\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/bf603d59117f840916709fc87c6625df43d1fe72\"\u003e\u003ccode\u003ebf603d5\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 6.4.3 to 6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/a916d8f8253baa11bacc60f0868f0bab1e42d526\"\u003e\u003ccode\u003ea916d8f\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidator\u003c/code\u003e protocol init to match runtime\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/de60f18bd97395a52a11b561eb62963e0ffe9e71\"\u003e\u003ccode\u003ede60f18\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1397\"\u003e#1397\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.25.0...v4.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema-specifications` from 2025.4.1 to 2025....\n\n_Description has been truncated_","html_url":"https://github.com/instructlab/ui/pull/966","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/instructlab%2Fui/issues/966","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/966/packages"},{"uuid":"2830305741","node_id":"PR_kwDOG7qlY86oswnN","number":73,"state":"open","title":"Bump the pip group with 39 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T18:55:13.000Z","updated_at":"2025-09-15T18:55:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":39,"packages":[{"name":"google-cloud-bigquery","old_version":"3.36.0","new_version":"3.37.0","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"google-cloud-bigquery-storage","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/googleapis/python-bigquery-storage"},{"name":"dataverk-airflow","old_version":"1.8.0","new_version":"1.8.1","repository_url":"https://github.com/navikt/dataverk-airflow"},{"name":"ruff","old_version":"0.12.12","new_version":"0.13.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"anyio","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.13.5"},{"name":"cachetools","old_version":"5.5.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.16","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"grpcio","old_version":"1.73.1","new_version":"1.74.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.74.0"},{"name":"ipykernel","old_version":"6.29.5","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"9.4.0","new_version":"9.5.0","repository_url":"https://github.com/ipython/ipython"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"numpy","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/numpy/numpy"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.32.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 39 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.36.0` | `3.37.0` |\n| [google-cloud-bigquery-storage](https://github.com/googleapis/python-bigquery-storage) | `2.33.0` | `2.33.1` |\n| [dataverk-airflow](https://github.com/navikt/dataverk-airflow) | `1.8.0` | `1.8.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.12` | `0.13.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.10.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.13.5` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.2` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.7` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.16` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [grpcio](https://github.com/grpc/grpc) | `1.73.1` | `1.74.0` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.74.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `6.30.1` |\n| [ipython](https://github.com/ipython/ipython) | `9.4.0` | `9.5.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.1` | `2.3.3` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.32.1` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20250822` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n\nUpdates `google-cloud-bigquery` from 3.36.0 to 3.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery/releases\"\u003egoogle-cloud-bigquery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.37.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003e3.37.0\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003eef2740a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e33ea296\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean that the job has not completed or was unsuccessful (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2278\"\u003e#2278\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e6e88d7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e8a13c12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery/blob/main/CHANGELOG.md\"\u003egoogle-cloud-bigquery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003e3.37.0\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003eef2740a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e33ea296\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean that the job has not completed or was unsuccessful (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2278\"\u003e#2278\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e6e88d7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e8a13c12\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/googleapis/python-bigquery/commit/4b0ef0cfcf7def138e43a22223abfcbefc330da2\"\u003e\u003ccode\u003e4b0ef0c\u003c/code\u003e\u003c/a\u003e chore(main): release 3.37.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2269\"\u003e#2269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e\u003ccode\u003e6e88d7d\u003c/code\u003e\u003c/a\u003e docs: clarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e\u003ccode\u003e33ea296\u003c/code\u003e\u003c/a\u003e fix: remove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e\u003ccode\u003e8a13c12\u003c/code\u003e\u003c/a\u003e docs: clarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/435ecdb62d8402fea317763e48934fa510ce8026\"\u003e\u003ccode\u003e435ecdb\u003c/code\u003e\u003c/a\u003e bug: updates \u003ccode\u003e__eq__\u003c/code\u003e comparison on TableConstraint (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2274\"\u003e#2274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/43527af24e56994357205b482a86b805950d2d0f\"\u003e\u003ccode\u003e43527af\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2259\"\u003e#2259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003e\u003ccode\u003eef2740a\u003c/code\u003e\u003c/a\u003e feat: updates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery-storage` from 2.33.0 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/releases\"\u003egoogle-cloud-bigquery-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003e2.33.1\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Exclude google-auth 2.24.0 and 2.25.0 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/blob/v2.33.1/CHANGELOG.md\"\u003egoogle-cloud-bigquery-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003e2.33.1\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Exclude google-auth 2.24.0 and 2.25.0 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\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/googleapis/python-bigquery-storage/commit/a7d9c212c76dc3f132f7899149a499d6790a7149\"\u003e\u003ccode\u003ea7d9c21\u003c/code\u003e\u003c/a\u003e chore(main): release 2.33.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/8170d3d84e4c0ae68b93902378e95b050543a739\"\u003e\u003ccode\u003e8170d3d\u003c/code\u003e\u003c/a\u003e chore: remove redundant code (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/979\"\u003e#979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e\u003ccode\u003e5b60dd4\u003c/code\u003e\u003c/a\u003e fix(deps): require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/978\"\u003e#978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/2a6daa16a5a6fe76901084748f909eba3ffb4c30\"\u003e\u003ccode\u003e2a6daa1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/977\"\u003e#977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/fa7c6b2b6700f25502605e67ae177ef11c49d868\"\u003e\u003ccode\u003efa7c6b2\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dataverk-airflow` from 1.8.0 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/navikt/dataverk-airflow/releases\"\u003edataverk-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump the gh group across 1 directory with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/pull/136\"\u003enavikt/dataverk-airflow#136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\"\u003ehttps://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/232348f77a9e6b4a68aafcc5200970a53b43d53c\"\u003e\u003ccode\u003e232348f\u003c/code\u003e\u003c/a\u003e handle empty args list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/78c476ea1aa4c966ba48238bca613be94335e157\"\u003e\u003ccode\u003e78c476e\u003c/code\u003e\u003c/a\u003e pass entrypoint arg from parent operators to underlying kubernetes_operator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/d26188af992f55ee60e29ae1612faec15fca45a8\"\u003e\u003ccode\u003ed26188a\u003c/code\u003e\u003c/a\u003e evaluate correct prop in test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/7f4a6d1d3c67f3bd8eb611eeaa84b434b0212796\"\u003e\u003ccode\u003e7f4a6d1\u003c/code\u003e\u003c/a\u003e remove deprecated python version from available versions + evaluate correct p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/97d902a1b858fe78c9d81f45e63b9e3ded64466c\"\u003e\u003ccode\u003e97d902a\u003c/code\u003e\u003c/a\u003e fix: default value for cmds arg to kubernetes_operator can be empty list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/49749ea6c2f3f6f0a96484284b4be98c9eb601f3\"\u003e\u003ccode\u003e49749ea\u003c/code\u003e\u003c/a\u003e add test for overriding container command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/dd48795f5b3f0f3b986188acfa1ace4a21d93a50\"\u003e\u003ccode\u003edd48795\u003c/code\u003e\u003c/a\u003e argument order for tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/60bf0dd448d3a27c6761589e0b0129be146f3bb5\"\u003e\u003ccode\u003e60bf0dd\u003c/code\u003e\u003c/a\u003e configurable container command for kubernetes_operator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/765c8068852dc418e7f8a5d469c1a4885f800eeb\"\u003e\u003ccode\u003e765c806\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/issues/136\"\u003e#136\u003c/a\u003e from navikt/dependabot/github_actions/\u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/issues/3272707161\"\u003egh-3272707161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/029e79758f48540167dc971ff8619be6328df8c5\"\u003e\u003ccode\u003e029e797\u003c/code\u003e\u003c/a\u003e build(deps): bump the gh group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.12 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.0\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eCheck out the \u003ca href=\"https://astral.sh/blog/ruff-v0.13.0\"\u003eblog post\u003c/a\u003e for a migration guide and overview of the changes!\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSeveral rules can now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e, \u003ccode\u003eRUF013\u003c/code\u003e, and \u003ccode\u003eUP037\u003c/code\u003e now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e as part of their fixes when the \u003ccode\u003elint.future-annotations\u003c/code\u003e setting is enabled. This allows the rules to move more imports into \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, and \u003ccode\u003eTC003\u003c/code\u003e), use PEP 604 union syntax on Python versions before 3.10 (\u003ccode\u003eRUF013\u003c/code\u003e), and unquote more annotations (\u003ccode\u003eUP037\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFull module paths are now used to verify first-party modules\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff now checks that the full path to a module exists on disk before categorizing it as a first-party import. This change makes first-party import detection more accurate, helping to avoid false positives on local directories with the same name as a third-party dependency, for example. See the \u003ca href=\"https://docs.astral.sh/ruff/faq/#how-does-ruff-determine-which-of-my-imports-are-first-party-third-party-etc\"\u003eFAQ section\u003c/a\u003e on import categorization for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecated rules must now be selected by exact rule code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer activate deprecated rules selected by their group name or prefix. As noted below, the two remaining deprecated rules were also removed in this release, so this won't affect any current rules, but it will still affect any deprecations in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eThe deprecated macOS configuration directory fallback has been removed\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer look for a user-level configuration file at \u003ccode\u003e~/Library/Application Support/ruff/ruff.toml\u003c/code\u003e on macOS. This feature was deprecated in v0.5 in favor of using the \u003ca href=\"https://specifications.freedesktop.org/basedir-spec/latest/\"\u003eXDG specification\u003c/a\u003e (usually resolving to \u003ccode\u003e~/.config/ruff/ruff.toml\u003c/code\u003e), like on Linux. The fallback and accompanying deprecation warning have now been removed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Rules\u003c/h3\u003e\n\u003cp\u003eThe following rules have been removed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pandas-df-variable-name\"\u003e\u003ccode\u003epandas-df-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePD901\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/non-pep604-isinstance\"\u003e\u003ccode\u003enon-pep604-isinstance\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP038\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStabilization\u003c/h3\u003e\n\u003cp\u003eThe following rules have been stabilized and are no longer in preview:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow-dag-no-schedule-argument\"\u003e\u003ccode\u003eairflow-dag-no-schedule-argument\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR002\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-removal\"\u003e\u003ccode\u003eairflow3-removal\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR301\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-moved-to-provider\"\u003e\u003ccode\u003eairflow3-moved-to-provider\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR302\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-suggested-update\"\u003e\u003ccode\u003eairflow3-suggested-update\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR311\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-suggested-to-move-to-provider\"\u003e\u003ccode\u003eairflow3-suggested-to-move-to-provider\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR312\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/long-sleep-not-forever\"\u003e\u003ccode\u003elong-sleep-not-forever\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eASYNC116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/f-string-number-format\"\u003e\u003ccode\u003ef-string-number-format\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eFURB116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/os-symlink\"\u003e\u003ccode\u003eos-symlink\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePTH211\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/generic-not-last-base-class\"\u003e\u003ccode\u003egeneric-not-last-base-class\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePYI059\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/redundant-none-literal\"\u003e\u003ccode\u003eredundant-none-literal\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePYI061\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pytest-raises-ambiguous-pattern\"\u003e\u003ccode\u003epytest-raises-ambiguous-pattern\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eRUF043\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/unused-unpacked-variable\"\u003e\u003ccode\u003eunused-unpacked-variable\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eRUF059\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-class-metaclass-type\"\u003e\u003ccode\u003euseless-class-metaclass-type\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP050\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following behaviors have been stabilized:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.0\u003c/h2\u003e\n\u003cp\u003eCheck out the \u003ca href=\"https://astral.sh/blog/ruff-v0.13.0\"\u003eblog post\u003c/a\u003e for a migration\nguide and overview of the changes!\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSeveral rules can now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e, \u003ccode\u003eRUF013\u003c/code\u003e, and \u003ccode\u003eUP037\u003c/code\u003e now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e as part of their fixes when the\n\u003ccode\u003elint.future-annotations\u003c/code\u003e setting is enabled. This allows the rules to move\nmore imports into \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, and \u003ccode\u003eTC003\u003c/code\u003e),\nuse PEP 604 union syntax on Python versions before 3.10 (\u003ccode\u003eRUF013\u003c/code\u003e), and\nunquote more annotations (\u003ccode\u003eUP037\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFull module paths are now used to verify first-party modules\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff now checks that the full path to a module exists on disk before\ncategorizing it as a first-party import. This change makes first-party\nimport detection more accurate, helping to avoid false positives on local\ndirectories with the same name as a third-party dependency, for example. See\nthe \u003ca href=\"https://docs.astral.sh/ruff/faq/#how-does-ruff-determine-which-of-my-imports-are-first-party-third-party-etc\"\u003eFAQ\nsection\u003c/a\u003e on import categorization for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecated rules must now be selected by exact rule code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer activate deprecated rules selected by their group name\nor prefix. As noted below, the two remaining deprecated rules were also\nremoved in this release, so this won't affect any current rules, but it will\nstill affect any deprecations in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eThe deprecated macOS configuration directory fallback has been removed\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer look for a user-level configuration file at\n\u003ccode\u003e~/Library/Application Support/ruff/ruff.toml\u003c/code\u003e on macOS. This feature was\ndeprecated in v0.5 in favor of using the \u003ca href=\"https://specifications.freedesktop.org/basedir-spec/latest/\"\u003eXDG\nspecification\u003c/a\u003e\n(usually resolving to \u003ccode\u003e~/.config/ruff/ruff.toml\u003c/code\u003e), like on Linux. The\nfallback and accompanying deprecation warning have now been removed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Rules\u003c/h3\u003e\n\u003cp\u003eThe following rules have been removed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pandas-df-variable-name\"\u003e\u003ccode\u003epandas-df-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePD901\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/non-pep604-isinstance\"\u003e\u003ccode\u003enon-pep604-isinstance\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP038\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStabilization\u003c/h3\u003e\n\u003cp\u003eThe following rules have been stabilized and are no longer in preview:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a1fdd66f10a045a574efb20e422868b21decda40\"\u003e\u003ccode\u003ea1fdd66\u003c/code\u003e\u003c/a\u003e Bump 0.13.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8770b95509b7a5a3b23061d739e6260303613f55\"\u003e\u003ccode\u003e8770b95\u003c/code\u003e\u003c/a\u003e [ty] introduce \u003ccode\u003eDivergentType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20312\"\u003e#20312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/65982a1e14a15449ea0ed5cf66b7f9dea6d3e82c\"\u003e\u003ccode\u003e65982a1\u003c/code\u003e\u003c/a\u003e [ty] Use 'unknown' specialization for upper bound on Self (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/57d1f7132dbac82e07f22560dbedba7cff1dadc4\"\u003e\u003ccode\u003e57d1f71\u003c/code\u003e\u003c/a\u003e [ty] Simplify unions of enum literals and subtypes thereof (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20324\"\u003e#20324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7a75702237e6f0bc605d3d8e9470c4ca9f37c69e\"\u003e\u003ccode\u003e7a75702\u003c/code\u003e\u003c/a\u003e Ignore deprecated rules unless selected by exact code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20167\"\u003e#20167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ca632c84fef6ecb7fc810cacb0df801c7949c70\"\u003e\u003ccode\u003e9ca632c\u003c/code\u003e\u003c/a\u003e Stabilize adding future import via config option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/64fe7d30a3ac9444eab1ed397c451b6c6e80bc6f\"\u003e\u003ccode\u003e64fe7d3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Stabilize extending \u003ccode\u003eraw-string-in-exception\u003c/code\u003e (\u003ccode\u003eEM101\u003c/code\u003e) to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beeeb8d5c5c8dabea2b11b0b8ed0f3c12dbf22c7\"\u003e\u003ccode\u003ebeeeb8d\u003c/code\u003e\u003c/a\u003e Stabilize the remaining Airflow rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20250\"\u003e#20250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b6fca52855d01dd40904386f5b8a6d4a17caae11\"\u003e\u003ccode\u003eb6fca52\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Stabilize support for non-context-manager calls in `assert...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ac7f882c78db09700bf6bccefe0e9a27fb1696b9\"\u003e\u003ccode\u003eac7f882\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-commas\u003c/code\u003e] Stabilize support for trailing comma checks in type paramet...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.12...0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.0 to 4.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\n(\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\nkeyword argument\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eNone\u003c/code\u003e as the default type argument for \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and\n\u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e\n(\u003ccode\u003e[#818](https://github.com/agronholm/anyio/issues/818) \u0026lt;https://github.com/agronholm/anyio/issues/818\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e\nand \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things,\nthis prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e.\n(\u003ccode\u003e[#896](https://github.com/agronholm/anyio/issues/896) \u0026lt;https://github.com/agronholm/anyio/pull/896\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint\n(special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and\nChristoffer Fjord)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6\"\u003e\u003ccode\u003e0cf55b8\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345\"\u003e\u003ccode\u003eb029df5\u003c/code\u003e\u003c/a\u003e Updated the to_interpreter module to use the public API on Python 3.14 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1\"\u003e\u003ccode\u003e01f02cf\u003c/code\u003e\u003c/a\u003e Incorporated EP2025 sprint feedback and added a new section (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4\"\u003e\u003ccode\u003ed896480\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/954\"\u003e#954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c\"\u003e\u003ccode\u003e0282b81\u003c/code\u003e\u003c/a\u003e Added the BufferedByteReceiveStream.feed_data() method (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb\"\u003e\u003ccode\u003e19e5477\u003c/code\u003e\u003c/a\u003e Fixed a cancellation edge case for asyncio CapacityLimiter (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827\"\u003e\u003ccode\u003e4666df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e\"\u003e\u003ccode\u003e38c2567\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb\"\u003e\u003ccode\u003e3db73ac\u003c/code\u003e\u003c/a\u003e Add missing imports for Readcting to cancellation in worker threads example (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9\"\u003e\u003ccode\u003e2eda004\u003c/code\u003e\u003c/a\u003e Added an example on how to use move_on_after() with shielding\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.13.5\n\nUpdates `cachetools` from 5.5.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comm` from 0.2.2 to 0.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/comm/releases\"\u003ecomm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.3\u003c/h2\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\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/ipython/comm/blob/main/CHANGELOG.md\"\u003ecomm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/057b00a49aabb97fb3c66eedcd97f09c6481d3c8\"\u003e\u003ccode\u003e057b00a\u003c/code\u003e\u003c/a\u003e Publish 0.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003e\u003ccode\u003eec3eb43\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003etraitlets\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/ipython/comm/issues/32\"\u003e#32\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/2223501c677ac4b8289294947cb10f4f120c6117\"\u003e\u003ccode\u003e2223501\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/29\"\u003e#29\u003c/a\u003e from Carreau/secmd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/31714fec2ec02aa0fdeb34bdaddee0ed94e5b676\"\u003e\u003ccode\u003e31714fe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/706df339274bd66b887badfc755a5369223b09a4\"\u003e\u003ccode\u003e706df33\u003c/code\u003e\u003c/a\u003e Add Security.md file.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/3737dd5e8225dbcf710fb3490b01d3bdafc80294\"\u003e\u003ccode\u003e3737dd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/28\"\u003e#28\u003c/a\u003e from Carreau/pc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/265d2c07ef255785e9aef4111f1391091d7e9d7e\"\u003e\u003ccode\u003e265d2c0\u003c/code\u003e\u003c/a\u003e pre-commit updates and fixes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...v0.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full dif...\n\n_Description has been truncated_","html_url":"https://github.com/navikt/pensjon-data-analyse/pull/73","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/navikt%2Fpensjon-data-analyse/issues/73","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/73/packages"},{"uuid":"2829464379","node_id":"PR_kwDOMHVffc6opjM7","number":62,"state":"open","title":"Bump the python-packages group across 1 directory with 37 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T14:17:31.000Z","updated_at":"2025-09-15T14:17:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":37,"packages":[{"name":"anyio","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.13.5"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.16","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"flask","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.59.2","repository_url":"https://github.com/fonttools/fonttools"},{"name":"ipykernel","old_version":"6.29.5","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"joblib","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/joblib/joblib"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"jupyterlab","old_version":"4.4.4","new_version":"4.4.7","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"notebook","old_version":"7.4.4","new_version":"7.4.5","repository_url":"https://github.com/jupyter/notebook"},{"name":"pandas","old_version":"2.3.0","new_version":"2.3.2","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"qtconsole","old_version":"5.6.1","new_version":"5.7.0","repository_url":"https://github.com/jupyter/qtconsole"},{"name":"regex","old_version":"2024.11.6","new_version":"2025.9.1","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 37 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.10.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.13.5` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.16` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.59.2` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `6.30.1` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.1` | `1.5.2` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.4` | `4.4.7` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [notebook](https://github.com/jupyter/notebook) | `7.4.4` | `7.4.5` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.0` | `2.3.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.4` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [qtconsole](https://github.com/jupyter/qtconsole) | `5.6.1` | `5.7.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.9.1` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20250822` |\n\n\nUpdates `anyio` from 4.9.0 to 4.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\n(\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\nkeyword argument\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eNone\u003c/code\u003e as the default type argument for \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and\n\u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e\n(\u003ccode\u003e[#818](https://github.com/agronholm/anyio/issues/818) \u0026lt;https://github.com/agronholm/anyio/issues/818\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e\nand \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things,\nthis prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e.\n(\u003ccode\u003e[#896](https://github.com/agronholm/anyio/issues/896) \u0026lt;https://github.com/agronholm/anyio/pull/896\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint\n(special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and\nChristoffer Fjord)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6\"\u003e\u003ccode\u003e0cf55b8\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345\"\u003e\u003ccode\u003eb029df5\u003c/code\u003e\u003c/a\u003e Updated the to_interpreter module to use the public API on Python 3.14 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1\"\u003e\u003ccode\u003e01f02cf\u003c/code\u003e\u003c/a\u003e Incorporated EP2025 sprint feedback and added a new section (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4\"\u003e\u003ccode\u003ed896480\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/954\"\u003e#954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c\"\u003e\u003ccode\u003e0282b81\u003c/code\u003e\u003c/a\u003e Added the BufferedByteReceiveStream.feed_data() method (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb\"\u003e\u003ccode\u003e19e5477\u003c/code\u003e\u003c/a\u003e Fixed a cancellation edge case for asyncio CapacityLimiter (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827\"\u003e\u003ccode\u003e4666df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e\"\u003e\u003ccode\u003e38c2567\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb\"\u003e\u003ccode\u003e3db73ac\u003c/code\u003e\u003c/a\u003e Add missing imports for Readcting to cancellation in worker threads example (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9\"\u003e\u003ccode\u003e2eda004\u003c/code\u003e\u003c/a\u003e Added an example on how to use move_on_after() with shielding\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.13.5\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comm` from 0.2.2 to 0.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/comm/releases\"\u003ecomm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.3\u003c/h2\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\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/ipython/comm/blob/main/CHANGELOG.md\"\u003ecomm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/057b00a49aabb97fb3c66eedcd97f09c6481d3c8\"\u003e\u003ccode\u003e057b00a\u003c/code\u003e\u003c/a\u003e Publish 0.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003e\u003ccode\u003eec3eb43\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003etraitlets\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/ipython/comm/issues/32\"\u003e#32\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/2223501c677ac4b8289294947cb10f4f120c6117\"\u003e\u003ccode\u003e2223501\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/29\"\u003e#29\u003c/a\u003e from Carreau/secmd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/31714fec2ec02aa0fdeb34bdaddee0ed94e5b676\"\u003e\u003ccode\u003e31714fe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/706df339274bd66b887badfc755a5369223b09a4\"\u003e\u003ccode\u003e706df33\u003c/code\u003e\u003c/a\u003e Add Security.md file.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/3737dd5e8225dbcf710fb3490b01d3bdafc80294\"\u003e\u003ccode\u003e3737dd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/28\"\u003e#28\u003c/a\u003e from Carreau/pc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/265d2c07ef255785e9aef4111f1391091d7e9d7e\"\u003e\u003ccode\u003e265d2c0\u003c/code\u003e\u003c/a\u003e pre-commit updates and fixes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...v0.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.14 to 1.8.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.16\u003c/h2\u003e\n\u003cp\u003eFixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/pull/1939\"\u003eFix bug in attach for 3.11 and lower on Windows\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/osiewicz\"\u003e\u003ccode\u003e@​osiewicz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.15\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1876\"\u003eStep Over, Step Into, not working when debugging Subprocesses\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1918\"\u003eAllow debugging child processes started through an intermediary\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/pull/1917\"\u003eAttach to process on arm64 Mac\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1898\"\u003eDocumentation typo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1893\"\u003e3.14 preliminary support\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/MichaelSpece\"\u003e\u003ccode\u003e@​MichaelSpece\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jborean93\"\u003e\u003ccode\u003e@​jborean93\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ConradIrwin\"\u003e\u003ccode\u003e@​ConradIrwin\u003c/code\u003e\u003c/a\u003e for your help\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/b00a8129977494bd127dd0bfed22082597762a08\"\u003e\u003ccode\u003eb00a812\u003c/code\u003e\u003c/a\u003e pydevd: Fix up prefix of attach shared library for Windows (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1939\"\u003e#1939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1aff9aa541955b967f41895570d4c0b54a7504d9\"\u003e\u003ccode\u003e1aff9aa\u003c/code\u003e\u003c/a\u003e Expose CLI Options through public API (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1928\"\u003e#1928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ead90f6f71de505191038872a2aa8718874372a9\"\u003e\u003ccode\u003eead90f6\u003c/code\u003e\u003c/a\u003e Fix round-robin CI script when state issue has no assignees (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1930\"\u003e#1930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/2b1e361eace18384ed30e2f18ae32febd9faea09\"\u003e\u003ccode\u003e2b1e361\u003c/code\u003e\u003c/a\u003e Document --adapter-access-token CLI arg (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1927\"\u003e#1927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea1dd9a838749a58bcc2d026693cc5a3c3cdbad1\"\u003e\u003ccode\u003eea1dd9a\u003c/code\u003e\u003c/a\u003e Fix debugger stepping actions in forked process (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/b387710b7f5cb7cbeab10783540d497854d71615\"\u003e\u003ccode\u003eb387710\u003c/code\u003e\u003c/a\u003e Add parent-session-pid argument (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/0d65353cc6e519292296bf567bdc6dfa5bcd4ffc\"\u003e\u003ccode\u003e0d65353\u003c/code\u003e\u003c/a\u003e Fix attach to process on arm64 Mac. (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1917\"\u003e#1917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/99b202ee21441f844b4c8fa3f79d518834fa5ff5\"\u003e\u003ccode\u003e99b202e\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1898\"\u003emicrosoft/debugpy#1898\u003c/a\u003e Fix. (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1899\"\u003e#1899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/34d5de99a0862404c6557e8a3479cd5b6d4445f1\"\u003e\u003ccode\u003e34d5de9\u003c/code\u003e\u003c/a\u003e IPv6 support (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1896\"\u003e#1896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4bc7343c05b9b4eaddf66466fa18edb4f98046d7\"\u003e\u003ccode\u003e4bc7343\u003c/code\u003e\u003c/a\u003e Fix 3.14 beta break with \u003ccode\u003e_handle\u003c/code\u003e on thread (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1895\"\u003e#1895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.14...v1.8.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `executing` from 2.2.0 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bafb305d96572bc8fb668b6564787bbb4fff2809\"\u003e\u003ccode\u003ebafb305\u003c/code\u003e\u003c/a\u003e Add 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/5ed2ba36c2df94c91fefabd919880ffe061dc0f2\"\u003e\u003ccode\u003e5ed2ba3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexmojaki/executing/issues/97\"\u003e#97\u003c/a\u003e from alexmojaki/3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/28095d447af50c49e154de5a27b9423611462f3d\"\u003e\u003ccode\u003e28095d4\u003c/code\u003e\u003c/a\u003e refactor: review changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bb09dc677da7988a2c9555878b3727afa995b2c0\"\u003e\u003ccode\u003ebb09dc6\u003c/code\u003e\u003c/a\u003e refactor: some cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/dabc70ef5cc9a45eb57432822cdcf674af2e1db8\"\u003e\u003ccode\u003edabc70e\u003c/code\u003e\u003c/a\u003e fix: inst.argval can be a tuple for sometimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/0772f918c432d6451594bcb6ffccba62e32e794c\"\u003e\u003ccode\u003e0772f91\u003c/code\u003e\u003c/a\u003e fix: removed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bacc5b699405e6f27d882dd2a71bb0ec30167f37\"\u003e\u003ccode\u003ebacc5b6\u003c/code\u003e\u003c/a\u003e fix: moved verification for CALL_INTRINSIC_2 back to 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/ec090751a1645cd14bfcb20a79b02371ffd6172b\"\u003e\u003ccode\u003eec09075\u003c/code\u003e\u003c/a\u003e test: added sample_results for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/9405fed0769af3ee22dd4f433249f6494688638e\"\u003e\u003ccode\u003e9405fed\u003c/code\u003e\u003c/a\u003e fix: handle synthetic code to store annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/f09e4cd194aa3480c12a9f5afab3524d2a7222f2\"\u003e\u003ccode\u003ef09e4cd\u003c/code\u003e\u003c/a\u003e fix: TypeVar defaults\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexmojaki/executing/compare/v2.2.0...v2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastjsonschema` from 2.21.1 to 2.21.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.1.1 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fonttools` from 4.58.4 to 4.59.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fonttools/fonttools/releases\"\u003efonttools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.59.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[varLib] Clear \u003ccode\u003eUSE_MY_METRICS\u003c/code\u003e component flags when inconsistent across masters (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3912\"\u003e#3912\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Avoid negative advance width/height values when instatiating HVAR/VVAR, (unlikely in well-behaved fonts) (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3918\"\u003e#3918\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[subset] Fix shaping behaviour when pruning empty mark sets (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3915\"\u003e#3915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/harfbuzz/harfbuzz/issues/5499\"\u003eharfbuzz/harfbuzz#5499\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Fixed \u003ccode\u003edot()\u003c/code\u003e product of perpendicular vectors not always returning exactly 0.0 in all Python implementations (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3911\"\u003e#3911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Implemented fully-instantiating \u003ccode\u003eavar2\u003c/code\u003e fonts (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3909\"\u003e#3909\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib] Allow float values in \u003ccode\u003eVariableScalar\u003c/code\u003e's axis locations (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3906\"\u003e#3906\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3907\"\u003e#3907\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Handle special case in \u003ccode\u003ecalc_intersect\u003c/code\u003e for degenerate cubic curves where 3 to 4 control points are equal (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3904\"\u003e#3904\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.59.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[featureVars] Update OS/2.usMaxContext if possible after addFeatureVariationsRaw (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3894\"\u003e#3894\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[vhmtx] raise TTLibError('not enough data...') when hmtx/vmtx are truncated (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3843\"\u003e#3843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3901\"\u003e#3901\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib] Combine duplicate features that have the same set of lookups regardless of the order in which those lookups are added to the feature (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3895\"\u003e#3895\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib] Deprecate \u003ccode\u003evarLib.mutator\u003c/code\u003e in favor of \u003ccode\u003evarLib.instancer\u003c/code\u003e. The latter provides equivalent full (static font) instancing in addition to partial VF instancing.\u003cbr /\u003e\nCLI users should replace \u003ccode\u003efonttools varLib.mutator\u003c/code\u003e with \u003ccode\u003efonttools varLib.instancer\u003c/code\u003e. API users should migrate to \u003ccode\u003efontTools.varLib.instancer.instantiateVariableFont\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/2680\"\u003e#2680\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.59.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved hard-dependency on pyfilesystem2 (\u003ccode\u003efs\u003c/code\u003e package) from \u003ccode\u003efonttools[ufo]\u003c/code\u003e extra. This is replaced by the \u003ccode\u003efontTools.misc.filesystem\u003c/code\u003e package, a stdlib-only, drop-in replacement for the subset of the pyfilesystem2's API used by \u003ccode\u003efontTools.ufoLib\u003c/code\u003e. The latter should continue to work with the upstream \u003ccode\u003efs\u003c/code\u003e (we even test with/without). However, clients who wish to continue using \u003ccode\u003efs\u003c/code\u003e can do so by depending on it directly instead of via the \u003ccode\u003efonttools[ufo]\u003c/code\u003e extra (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3885\"\u003e#3885\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3620\"\u003e#3620\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[xmlWriter] Replace illegal XML characters (e.g. control or non-characters) with \u0026quot;?\u0026quot; when dumping to ttx (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3868\"\u003e#3868\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/71\"\u003e#71\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.hvar] Fixed vertical metrics fields copy/pasta error (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3884\"\u003e#3884\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMicro optimizations in ttLib and sstruct modules (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3878\"\u003e#3878\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3879\"\u003e#3879\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[unicodedata] Add Garay script to RTL_SCRIPTS (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3882\"\u003e#3882\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[roundingPen] Remove unreliable kwarg usage. Argument names aren’t consistent among point pens’ \u003ccode\u003e.addComponent()\u003c/code\u003e implementations, in particular \u003ccode\u003ebaseGlyphName\u003c/code\u003e vs \u003ccode\u003eglyphName\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3880\"\u003e#3880\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.58.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[feaLib] Don't try to combine ligature \u0026amp; multisub rules (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3874\"\u003e#3874\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib/ast] Use weakref proxies to avoid cycles in visitor (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3873\"\u003e#3873\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Fixed instancing CFF2 fonts where VarData contains more than 64k items (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3858\"\u003e#3858\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fonttools/fonttools/blob/main/NEWS.rst\"\u003efonttools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.59.2 (released 2025-08-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[varLib] Clear \u003ccode\u003eUSE_MY_METRICS\u003c/code\u003e component flags when inconsistent across masters (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3912\"\u003e#3912\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Avoid negative advance width/height values when instatiating HVAR/VVAR,\n(unlikely in well-behaved fonts) (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3918\"\u003e#3918\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[subset] Fix shaping behaviour when pruning empty mark sets (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3915\"\u003e#3915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/harfbuzz/harfbuzz/issues/5499\"\u003eharfbuzz/harfbuzz#5499\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Fixed \u003ccode\u003edot()\u003c/code\u003e product of perpendicular vectors not always returning exactly 0.0\nin all Python implementations (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3911\"\u003e#3911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Implemented fully-instantiating \u003ccode\u003eavar2\u003c/code\u003e fonts (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3909\"\u003e#3909\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib] Allow float values in \u003ccode\u003eVariableScalar\u003c/code\u003e's axis locations (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3906\"\u003e#3906\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3907\"\u003e#3907\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Handle special case in \u003ccode\u003ecalc_intersect\u003c/code\u003e for degenerate cubic curves where 3 to 4\ncontrol points are equal (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3904\"\u003e#3904\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.59.1 (released 2025-08-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[featureVars] Update OS/2.usMaxContext if possible after addFeatureVariationsRaw (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3894\"\u003e#3894\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[vhmtx] raise TTLibError('not enough data...') when hmtx/vmtx are truncated (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3843\"\u003e#3843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3901\"\u003e#3901\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib] Combine duplicate features that have the same set of lookups regardless of the order in which those lookups are added to the feature (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3895\"\u003e#3895\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib] Deprecate \u003ccode\u003evarLib.mutator\u003c/code\u003e in favor of \u003ccode\u003evarLib.instancer\u003c/code\u003e. The latter\nprovides equivalent full (static font) instancing in addition to partial VF instancing.\nCLI users should replace \u003ccode\u003efonttools varLib.mutator\u003c/code\u003e with \u003ccode\u003efonttools varLib.instancer\u003c/code\u003e.\nAPI users should migrate to \u003ccode\u003efontTools.varLib.instancer.instantiateVariableFont\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/2680\"\u003e#2680\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.59.0 (released 2025-07-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved hard-dependency on pyfilesystem2 (\u003ccode\u003efs\u003c/code\u003e package) from \u003ccode\u003efonttools[ufo]\u003c/code\u003e extra.\nThis is replaced by the \u003ccode\u003efontTools.misc.filesystem\u003c/code\u003e package, a stdlib-only, drop-in\nreplacement for the subset of the pyfilesystem2's API used by \u003ccode\u003efontTools.ufoLib\u003c/code\u003e.\nThe latter should continue to work with the upstream \u003ccode\u003efs\u003c/code\u003e (we even test with/without).\nClients who wish to continue using \u003ccode\u003efs\u003c/code\u003e can do so by depending on it directly instead\nof via the \u003ccode\u003efonttools[ufo]\u003c/code\u003e extra (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3885\"\u003e#3885\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3620\"\u003e#3620\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[xmlWriter] Replace illegal XML characters (e.g. control or non-characters) with \u0026quot;?\u0026quot;\nwhen dumping to ttx (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3868\"\u003e#3868\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/71\"\u003e#71\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.hvar] Fixed vertical metrics fields copy/pasta error (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3884\"\u003e#3884\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMicro optimizations in ttLib and sstruct modules (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3878\"\u003e#3878\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3879\"\u003e#3879\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[unicodedata] Add Garay script to RTL_SCRIPTS (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3882\"\u003e#3882\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[roundingPen] Remove unreliable kwarg usage. Argument names aren’t consistent among\npoint pens’ \u003ccode\u003e.addComponent()\u003c/code\u003e implementations, in particular \u003ccode\u003ebaseGlyphName\u003c/code\u003e\nvs \u003ccode\u003eglyphName\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3880\"\u003e#3880\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.58.5 (released 2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[feaLib] Don't try to combine ligature \u0026amp; multisub rules (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3874\"\u003e#3874\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib/ast] Use weakref proxies to avoid cycles in visitor (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3873\"\u003e#3873\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Fixed instancing CFF2 fonts where VarData contains more than 64k items (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3858\"\u003e#3858\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/fonttools/fonttools/commit/45600b474d3e5180bc21611ab9923d033b83a35c\"\u003e\u003ccode\u003e45600b4\u003c/code\u003e\u003c/a\u003e Release 4.59.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/44df30c6f8f1132d46ef9a02a7cf1a10607acd09\"\u003e\u003ccode\u003e44df30c\u003c/code\u003e\u003c/a\u003e Update NEWS.rst [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/8123c64c0a155c4be87363b381b15f2d149ca51c\"\u003e\u003ccode\u003e8123c64\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3914\"\u003e#3914\u003c/a\u003e from fonttools/add-some-name-typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/032aae62f4b6b500d4449b6118130473445b75b1\"\u003e\u003ccode\u003e032aae6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3912\"\u003e#3912\u003c/a\u003e from fonttools/varlib-unset-use-my-metrics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/67356c713170075b745c46826437b4c73c06c5dd\"\u003e\u003ccode\u003e67356c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3918\"\u003e#3918\u003c/a\u003e from CourtBouillon/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/c24dea4314c9136ad53b275f25183c922f13a2ec\"\u003e\u003ccode\u003ec24dea4\u003c/code\u003e\u003c/a\u003e Avoid negative hmtx values when creating font from variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/7ccaa0db41a180a9ceb1b18d2495a2734650e074\"\u003e\u003ccode\u003e7ccaa0d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3915\"\u003e#3915\u003c/a\u003e from fonttools/hb-issue-5499\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/b8cdef001ba66acb13db5eefb6c7b555bf441f66\"\u003e\u003ccode\u003eb8cdef0\u003c/code\u003e\u003c/a\u003e [subset] Fix shaping behaviour when pruning empty mark sets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/5d3c7a3b0b208c15a958f4b22df574092284576d\"\u003e\u003ccode\u003e5d3c7a3\u003c/code\u003e\u003c/a\u003e Add some typing for the name table\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/8b42edfcf84f13f131c00e37a96cd05d4128dc20\"\u003e\u003ccode\u003e8b42edf\u003c/code\u003e\u003c/a\u003e varLib_test: test inconsistent USE_MY_METRICS flag is unset\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fonttools/fonttools/compare/4.58.4...4.59.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipykernel` from 6.29.5 to 6.30.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/releases\"\u003eipykernel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.30.1\u003c/h2\u003e\n\u003ch2\u003e6.30.1\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release to fix a significant bug introduced in 6.30.0 that allowed control messages to be handled concurrently rather than sequentially which broke debugging in JupyterLab and VSCode.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v6.30.0...357c908eab4ae97bb17c5dcabc7ee981df8ecb29\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect use of asyncio.Lock to process a single control message at a time \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1416\"\u003e#1416\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackport: Remove links in changelog to github milestones that no longer exist \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1417\"\u003e#1417\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-07-21\u0026amp;to=2025-08-04\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-07-21..2025-08-04\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.30.0\u003c/h2\u003e\n\u003ch2\u003e6.30.0\u003c/h2\u003e\n\u003cp\u003eThis release fixes three bugs but is primarily a maintenance release bringing support for Python 3.13 and updating dependencies. It does not include subshells which will be in the upcoming 7.0.0 release. Users and downstream libraries that wish to avoid subshells should pin to \u003ccode\u003eipykernel \u0026lt; 7\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/b1283b144...d9bd546a4dc49a41c3ad5fcc5d4a61f259973182\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove control queue \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1210\"\u003e#1210\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet shell idle when message skipped by \u0026quot;should_handle\u0026quot; in \u0026quot;dispatch_shell\u0026quot; \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1395\"\u003e#1395\u003c/a\u003e (\u003ca href=\"https://github.com/dby-tmwctw\"\u003e\u003ccode\u003e@​dby-tmwctw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed error accessing sys.stdout/sys.stderr when those are None \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1247\"\u003e#1247\u003c/a\u003e (\u003ca href=\"https://github.com/gregory-shklover\"\u003e\u003ccode\u003e@​gregory-shklover\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow datetime or str in test_sequential_control_messages \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1219\"\u003e#1219\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6.x backports \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1406\"\u003e#1406\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit and github actions \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1401\"\u003e#1401\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest more python versions on 6.x branch \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1398\"\u003e#1398\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBackports and extra changes to fix CI on 6.x branch \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1390\"\u003e#1390\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove nose import. \u003ca href=\"https://redirect.github...\n\n_Description has been truncated_","html_url":"https://github.com/manulthanura/ReviewClassifier/pull/62","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/manulthanura%2FReviewClassifier/issues/62","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/62/packages"},{"uuid":"2828564819","node_id":"PR_kwDOAXK6hs6omHlT","number":972,"state":"closed","title":"Bump fastjsonschema from 2.21.1 to 2.21.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-15T14:49:02.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T09:51:39.000Z","updated_at":"2025-09-15T14:49:02.000Z","time_to_close":17843,"merged_at":"2025-09-15T14:49:02.000Z","merged_by":"unixorn","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":null,"ecosystem":"pip"},"body":"Bumps [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) from 2.21.1 to 2.21.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fastjsonschema\u0026package-manager=pip\u0026previous-version=2.21.1\u0026new-version=2.21.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/unixorn/git-extra-commands/pull/972","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/unixorn%2Fgit-extra-commands/issues/972","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/972/packages"},{"uuid":"3416782762","node_id":"PR_kwDOD-Dy-s6okzny","number":344,"state":"open","title":"Update fastjsonschema requirement from ~=2.17.1 to ~=2.21.2 in /tests","user":"dependabot[bot]","labels":["dependencies","python","category: dependency_changes","Stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-15T08:04:22.000Z","updated_at":"2025-10-08T02:14:06.610Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"fastjsonschema","old_version":"~=2.17.1","new_version":"~=2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":"/tests","ecosystem":"pip"},"body":"Updates the requirements on [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.1 (2023-12-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed date format to accept only two digit months and days\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.0 (2023-11-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003euse_formats\u003c/code\u003e parameter to allow disable automatic assertions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.1 (2023-10-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazy import of urllib to improve import performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.0 (2023-07-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error message for required props - only missing are reported\u003c/li\u003e\n\u003cli\u003eFixed support of boolean schema in if-then-else application\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.1 (2023-05-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed tests in sdist\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.0 (2023-05-21)\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/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.17.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ilyachur/openvino/pull/344","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachur%2Fopenvino/issues/344","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/344/packages"}],"issue_packages":[{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-12-22T11:27:59.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"3753432191","node_id":"PR_kwDOLufxkc66H2l_","number":109,"state":"open","title":"deps: bump fastjsonschema from 2.21.1 to 2.21.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-22T11:27:59.000Z","updated_at":"2025-12-22T11:28:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":null,"ecosystem":"pip"},"body":"Bumps [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) from 2.21.1 to 2.21.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fastjsonschema\u0026package-manager=pip\u0026previous-version=2.21.1\u0026new-version=2.21.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/OpenMS/pyopenms_viz/pull/109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMS%2Fpyopenms_viz/issues/109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/109/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-12-08T07:45:59.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"3705077254","node_id":"PR_kwDOLzgXB863nCne","number":623,"state":"closed","title":"Bump the allpip group across 1 directory with 79 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-09T09:28:56.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T07:45:59.000Z","updated_at":"2025-12-09T09:28:58.000Z","time_to_close":92577,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":79,"packages":[{"name":"fastapi","old_version":"0.121.0","new_version":"0.124.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"alembic","old_version":"1.16.5","new_version":"1.17.2","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.11.9","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.10.1","new_version":"2.12.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"uvicorn","old_version":"0.36.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"sqlalchemy","old_version":"2.0.43","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"minio","old_version":"7.2.16","new_version":"7.2.20","repository_url":"https://github.com/minio/minio-py"},{"name":"pytest-asyncio","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"coverage","old_version":"7.10.7","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"playwright","old_version":"1.55.0","new_version":"1.56.0","repository_url":"https://github.com/microsoft/playwright-python"},{"name":"pytest-playwright","old_version":"0.7.1","new_version":"0.7.2","repository_url":"https://github.com/microsoft/playwright-pytest"},{"name":"vcrpy","old_version":"7.0.0","new_version":"8.0.0","repository_url":"https://github.com/kevin1024/vcrpy"},{"name":"ruff","old_version":"0.13.1","new_version":"0.14.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.405","new_version":"1.1.407","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"annotated-doc","old_version":"0.0.3","new_version":"0.0.4","repository_url":"https://github.com/fastapi/annotated-doc"},{"name":"anyio","old_version":"4.8.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi","old_version":"23.1.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachecontrol","old_version":"0.14.1","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cryptography","old_version":"44.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"cssbeautifier","old_version":"1.15.1","new_version":"1.15.4","repository_url":"https://github.com/beautifier/js-beautify"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dulwich","old_version":"0.24.1","new_version":"0.24.10","repository_url":"https://github.com/dulwich/dulwich"},{"name":"editorconfig","old_version":"0.17.0","new_version":"0.17.1","repository_url":"https://github.com/editorconfig/editorconfig-core-py"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.16.1","new_version":"3.20.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"findpython","old_version":"0.6.2","new_version":"0.7.1","repository_url":"https://github.com/frostming/findpython"},{"name":"fsspec","old_version":"2024.12.0","new_version":"2025.12.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.1.1","new_version":"3.3.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"httptools","old_version":"0.6.4","new_version":"0.7.1","repository_url":"https://github.com/MagicStack/httptools"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.15","repository_url":"https://github.com/pre-commit/identify"},{"name":"idna","old_version":"3.10","new_version":"3.11","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":"jaraco-functools","old_version":"4.1.0","new_version":"4.3.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jeepney","old_version":"0.8.0","new_version":"0.9.0"},{"name":"jsbeautifier","old_version":"1.15.1","new_version":"1.15.4","repository_url":"https://github.com/ghost6991/Jsbeautifier"},{"name":"json5","old_version":"0.10.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"keyring","old_version":"25.6.0","new_version":"25.7.0","repository_url":"https://github.com/jaraco/keyring"},{"name":"mako","old_version":"1.3.8","new_version":"1.3.10","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":"more-itertools","old_version":"10.5.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pbs-installer","old_version":"2025.2.12","new_version":"2025.12.5","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"pkginfo","old_version":"1.12.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.1","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":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pycryptodome","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"rapidfuzz","old_version":"3.11.0","new_version":"3.14.3","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"regex","old_version":"2024.11.6","new_version":"2025.11.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"secretstorage","old_version":"3.3.3","new_version":"3.5.0","repository_url":"https://github.com/mitya57/secretstorage"},{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.1.6.15","new_version":"2025.12.1.14","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"validators","old_version":"0.34.0","new_version":"0.35.0","repository_url":"https://github.com/python-validators/validators"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.0.3","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"14.1","new_version":"15.0.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"1.17.0","new_version":"2.0.1","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"xattr","old_version":"1.1.4","new_version":"1.3.0","repository_url":"https://github.com/xattr/xattr"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 74 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.121.0` | `0.124.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.5` | `1.17.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.9` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.10.1` | `2.12.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.36.0` | `0.38.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.44` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [minio](https://github.com/minio/minio-py) | `7.2.16` | `7.2.20` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.2.0` | `1.3.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.12.0` |\n| [playwright](https://github.com/microsoft/playwright-python) | `1.55.0` | `1.56.0` |\n| [pytest-playwright](https://github.com/microsoft/playwright-pytest) | `0.7.1` | `0.7.2` |\n| [vcrpy](https://github.com/kevin1024/vcrpy) | `7.0.0` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.1` | `0.14.8` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.405` | `1.1.407` |\n| [annotated-doc](https://github.com/fastapi/annotated-doc) | `0.0.3` | `0.0.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.8.0` | `4.12.0` |\n| [argon2-cffi](https://github.com/hynek/argon2-cffi) | `23.1.0` | `25.1.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.1` | `0.14.4` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.11.12` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.4` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.1` | `46.0.3` |\n| [cssbeautifier](https://github.com/beautifier/js-beautify) | `1.15.1` | `1.15.4` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `0.24.1` | `0.24.10` |\n| [editorconfig](https://github.com/editorconfig/editorconfig-core-py) | `0.17.0` | `0.17.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.20.0` |\n| [findpython](https://github.com/frostming/findpython) | `0.6.2` | `0.7.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2024.12.0` | `2025.12.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.1.1` | `3.3.0` |\n| [httptools](https://github.com/MagicStack/httptools) | `0.6.4` | `0.7.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.1.0` | `4.3.0` |\n| [jeepney](https://gitlab.com/takluyver/jeepney) | `0.8.0` | `0.9.0` |\n| [jsbeautifier](https://github.com/ghost6991/Jsbeautifier) | `1.15.1` | `1.15.4` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.10.0` | `0.12.1` |\n| [keyring](https://github.com/jaraco/keyring) | `25.6.0` | `25.7.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.8` | `1.3.10` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.5.0` | `10.8.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.1.2` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.2.12` | `2025.12.5` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.12.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.1` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.21.0` | `3.23.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.11.0` | `3.14.3` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.11.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [secretstorage](https://github.com/mitya57/secretstorage) | `3.3.3` | `3.5.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.50.0` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.1.6.15` | `2025.12.1.14` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [validators](https://github.com/python-validators/validators) | `0.34.0` | `0.35.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.3` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `14.1` | `15.0.1` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.0` | `2.0.1` |\n| [xattr](https://github.com/xattr/xattr) | `1.1.4` | `1.3.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n\n\nUpdates `fastapi` from 0.121.0 to 0.124.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.124.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸  Improve tracebacks by adding endpoint metadata. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14306\"\u003e#14306\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\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✏️ Fix typo in \u003ccode\u003escripts/mkdocs_hooks.py\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14457\"\u003e#14457\u003c/a\u003e by \u003ca href=\"https://github.com/yujiteshima\"\u003e\u003ccode\u003e@​yujiteshima\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.10\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix using class (not instance) dependency that has \u003ccode\u003e__call__\u003c/code\u003e method. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14458\"\u003e#14458\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eseparate_input_output_schemas=False\u003c/code\u003e with \u003ccode\u003ecomputed_field\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14453\"\u003e#14453\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.123.9\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix OAuth2 scopes in OpenAPI in extra corner cases, parent dependency with scopes, sub-dependency security scheme without scopes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14459\"\u003e#14459\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.123.8\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix OpenAPI security scheme OAuth2 scopes declaration, deduplicate security schemes with different scopes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14455\"\u003e#14455\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.123.7\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix evaluating stringified annotations in Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11355\"\u003e#11355\u003c/a\u003e by \u003ca href=\"https://github.com/chaen\"\u003e\u003ccode\u003e@​chaen\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.6\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for functools wraps and partial combined, for async and regular functions and classes in path operations and dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14448\"\u003e#14448\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.123.5\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Allow using dependables with \u003ccode\u003efunctools.partial()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9753\"\u003e#9753\u003c/a\u003e by \u003ca href=\"https://github.com/lieryan\"\u003e\u003ccode\u003e@​lieryan\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add support for wrapped functions (e.g. \u003ccode\u003e@functools.wraps()\u003c/code\u003e) used with forward references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/5077\"\u003e#5077\u003c/a\u003e by \u003ca href=\"https://github.com/lucaswiman\"\u003e\u003ccode\u003e@​lucaswiman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Handle wrapped dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9555\"\u003e#9555\u003c/a\u003e by \u003ca href=\"https://github.com/phy1729\"\u003e\u003ccode\u003e@​phy1729\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix optional sequence handling with new union syntax from Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14430\"\u003e#14430\u003c/a\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove dangling extra condiitonal no longer needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14435\"\u003e#14435\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♻️ Refactor internals, update \u003ccode\u003eis_coroutine\u003c/code\u003e check to reuse internal supported variants (unwrap, check class). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14434\"\u003e#14434\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b5ca13249e3f2002c70c3f2de528a128af2008f7\"\u003e\u003ccode\u003eb5ca132\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.124.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a2cef707e30fb6eb14812e4e273e34079d30ae6b\"\u003e\u003ccode\u003ea2cef70\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5b6245666b8a499d2551caff7567056ef7f881b2\"\u003e\u003ccode\u003e5b62456\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003escripts/mkdocs_hooks.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14457\"\u003e#14457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/dbd34f15789f4afa851e339cea4fcd49f421039d\"\u003e\u003ccode\u003edbd34f1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e1117f75505bbdb2d42321a009dbf26c9c2b8b6d\"\u003e\u003ccode\u003ee1117f7\u003c/code\u003e\u003c/a\u003e 🚸  Improve tracebacks by adding endpoint metadata (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14306\"\u003e#14306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/08b09e5236e315b6f10265ed229f130d4befb4ea\"\u003e\u003ccode\u003e08b09e5\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.123.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e7d7038dfa35fc923f20fd11a969d2e65e1b9df1\"\u003e\u003ccode\u003ee7d7038\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/da0ffab0b260475499294d3dc767409d7bca5c34\"\u003e\u003ccode\u003eda0ffab\u003c/code\u003e\u003c/a\u003e 🐛 Fix using class (not instance) dependency that has \u003ccode\u003e__call__\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14458\"\u003e#14458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/516169428d2fa189d34318ebc469a082c49c1189\"\u003e\u003ccode\u003e5161694\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/812a1926f06391b22b081fdb11fe7528e3b91293\"\u003e\u003ccode\u003e812a192\u003c/code\u003e\u003c/a\u003e 🐛 Fix \u003ccode\u003eseparate_input_output_schemas=False\u003c/code\u003e with \u003ccode\u003ecomputed_field\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14453\"\u003e#14453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.121.0...0.124.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.16.5 to 1.17.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.17.2\u003c/h1\u003e\n\u003cp\u003eReleased: November 14, 2025\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e Added \u003ccode\u003eOperations.implementation_for.replace\u003c/code\u003e parameter to\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e, allowing replacement of existing\noperation implementations.  This allows for existing operations such as\n\u003ccode\u003eCreateTableOp\u003c/code\u003e to be extended directly.  Pull request courtesy\njustanothercatgirl.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1750\"\u003e#1750\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mssql]\u003c/strong\u003e Fixed issue in SQL Server dialect where the DROP that's automatically\nemitted for existing default constraints during an ALTER COLUMN needs to\ntake place before not just the modification of the column's default, but\nalso before the column's type is changed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1744\"\u003e#1744\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.17.1\u003c/h1\u003e\n\u003cp\u003eReleased: October 28, 2025\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003ecommand.current.check_heads\u003c/code\u003e parameter to\n\u003ccode\u003ecommand.current()\u003c/code\u003e command, available from the command line via the\n\u003ccode\u003e--check-heads\u003c/code\u003e option to \u003ccode\u003ealembic current\u003c/code\u003e.  This tests if all head\nrevisions are applied to the database and raises \u003ccode\u003eDatabaseNotAtHead\u003c/code\u003e\n(or from the command line, exits with a non-zero exit code) if this is not\nthe case.  The parameter operates equvialently to the cookbook recipe\n\u003ccode\u003ecookbook_check_heads\u003c/code\u003e. Pull request courtesy Stefan Scherfke.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1705\"\u003e#1705\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[bug] [commands]\u003c/strong\u003e Disallow ':' character in custom revision identifiers. Previously, using a\ncolon in a revision ID (e.g., 'REV:1') would create the revision, however\nrevisions with colons in them are not correctly interpreted by other\ncommands, as it overlaps with the revision range syntax.   Pull request\ncourtesy Kim Wooseok with original implementation by Hrushikesh Patil.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.9 to 2.12.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.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes 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/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required 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/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes 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/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required 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/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.9...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.10.1 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip non-explicit default values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/692\"\u003epydantic/pydantic-settings#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCoerce env vars if strict is True. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/693\"\u003epydantic/pydantic-settings#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore init kwarg names before returning final state dictionary. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/700\"\u003epydantic/pydantic-settings#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python3.9 support by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/699\"\u003epydantic/pydantic-settings#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt test_protected_namespace_defaults for dev. Pydantic by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/637\"\u003epydantic/pydantic-settings#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/704\"\u003epydantic/pydantic-settings#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.12 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/705\"\u003epydantic/pydantic-settings#705\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/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\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-settings/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\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/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/584983d253a0fac4dfb294d1e6f9ef188add468b\"\u003e\u003ccode\u003e584983d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6b4d87e77698476433031c0056ce71aa4f4a7c4e\"\u003e\u003ccode\u003e6b4d87e\u003c/code\u003e\u003c/a\u003e Add Python 3.14 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/02de5b622b8648404aa792df01599aa1179c3aa7\"\u003e\u003ccode\u003e02de5b6\u003c/code\u003e\u003c/a\u003e Adapt test_protected_namespace_defaults for dev. Pydantic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4239ea460a5c465a4ce908c52e9606549b38fa98\"\u003e\u003ccode\u003e4239ea4\u003c/code\u003e\u003c/a\u003e Drop Python3.9 support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/699\"\u003e#699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5008c694f684f88fd310f476871ec021426e98d7\"\u003e\u003ccode\u003e5008c69\u003c/code\u003e\u003c/a\u003e Restore init kwarg names before returning final state dictionary. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4433101fef6770d3fc0844846f7f3837bfec3b10\"\u003e\u003ccode\u003e4433101\u003c/code\u003e\u003c/a\u003e Coerce env vars if strict is True. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4d2ebfd543e6011f6b71a99042007adf7e613ae9\"\u003e\u003ccode\u003e4d2ebfd\u003c/code\u003e\u003c/a\u003e Strip non-explicit default values. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4a6ffcaeae451199b1873c6709b28aceae7317a7\"\u003e\u003ccode\u003e4a6ffca\u003c/code\u003e\u003c/a\u003e Add NestedSecretsSettings source (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7a6e96ebfc89ddb5b20dfb068c8ed46b6ff18a7f\"\u003e\u003ccode\u003e7a6e96e\u003c/code\u003e\u003c/a\u003e Apply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/68563eddc09856b94ea0ca156dd75040b4e048e4\"\u003e\u003ccode\u003e68563ed\u003c/code\u003e\u003c/a\u003e Support for enum kebab case. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.36.0 to 0.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\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.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\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.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.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's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\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/3850ad6520cafb290bd4174fa9c4ca5d33440c82\"\u003e\u003ccode\u003e3850ad6\u003c/code\u003e\u003c/a\u003e Version 0.38.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b3f17a549ec96f57bf4d975145fc58feefdd4e8\"\u003e\u003ccode\u003e9b3f17a\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ce79f95d065c053b36449f67b3b2cefee5ecf167\"\u003e\u003ccode\u003ece79f95\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dbf8797b47c79da542f530f2143b8e851e2388fd\"\u003e\u003ccode\u003edbf8797\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2728\"\u003e#2728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/58f28be98eb95c8cf25905df10997b4af81c23e3\"\u003e\u003ccode\u003e58f28be\u003c/code\u003e\u003c/a\u003e Add section about event loop (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2725\"\u003e#2725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/93d95107490d5ea3693601388d7783c450058271\"\u003e\u003ccode\u003e93d9510\u003c/code\u003e\u003c/a\u003e Bump docs dependencies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b1c6c45ed7fe8bd485ddad475f0feff03971af7\"\u003e\u003ccode\u003e9b1c6c4\u003c/code\u003e\u003c/a\u003e Move Marcelo Trylesinski to maintainers in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/57a61d86f2f123b1d35b9ff71e0f29d22d10806f\"\u003e\u003ccode\u003e57a61d8\u003c/code\u003e\u003c/a\u003e Add discord to README (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2718\"\u003e#2718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ef5f9f5e7e79887b4ab4214c15ab5a9ce63e193\"\u003e\u003ccode\u003e7ef5f9f\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6d26d88970379cbf20b4dbf4f70e27f191db4ede\"\u003e\u003ccode\u003e6d26d88\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for PEP639 compliance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2713\"\u003e#2713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.38.0\"\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 `click` from 8.3.0 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.0...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.43 to 2.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `minio` from 7.2.16 to 7.2.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/minio/minio-py/releases\"\u003eminio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBugfix Release 7.2.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable github CI run by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1543\"\u003eminio/minio-py#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake BaseException internals to be set (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1521\"\u003e#1521\u003c/a\u003e) by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1539\"\u003eminio/minio-py#1539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add missing type annotations to serialization dataclass fields (… by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1540\"\u003eminio/minio-py#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport optional parameters in LdapIdentityProvider (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1528\"\u003e#1528\u003c/a\u003e) by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1541\"\u003eminio/minio-py#1541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix object_size/headers in ComposeSource by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1545\"\u003eminio/minio-py#1545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix complete_multipart_upload() to support SSE-C by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1544\"\u003eminio/minio-py#1544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/minio/minio-py/compare/7.2.18...7.2.20\"\u003ehttps://github.com/minio/minio-py/compare/7.2.18...7.2.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugfix release 7.2.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd region, extra_headers and extra_query_params by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/623","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/623","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/623/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-12-08T02:32:25.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"3704392014","node_id":"PR_kwDOO1bbZM63kwzP","number":34,"state":"closed","title":"chore(deps): bump the production-dependencies group across 1 directory with 73 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-15T02:26:50.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T02:32:25.000Z","updated_at":"2025-12-15T02:26:52.000Z","time_to_close":604465,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":73,"packages":[{"name":"ipykernel","old_version":"6.29.5","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.7","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"plotly","old_version":"6.1.2","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pypsa","old_version":"0.34.1","new_version":"1.0.5","repository_url":"https://github.com/PyPSA/PyPSA"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"bottleneck","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pydata/bottleneck"},{"name":"cdsapi","old_version":"0.7.6","new_version":"0.7.7","repository_url":"https://github.com/ecmwf/cdsapi"},{"name":"certifi","old_version":"2025.4.26","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cfgrib","old_version":"0.9.15.0","new_version":"0.9.15.1","repository_url":"https://github.com/ecmwf/cfgrib"},{"name":"cftime","old_version":"1.6.4.post1","new_version":"1.6.5","repository_url":"https://github.com/Unidata/cftime"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"cloudpickle","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/cloudpipe/cloudpickle"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"dask","old_version":"2025.5.1","new_version":"2025.11.0","repository_url":"https://github.com/dask/dask"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"eccodes","old_version":"2.42.0","new_version":"2.44.0","repository_url":"https://github.com/ecmwf/eccodes-python"},{"name":"ecmwf-datastores-client","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/ecmwf/ecmwf-datastores-client"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"findlibs","old_version":"0.1.1","new_version":"0.1.2","repository_url":"https://github.com/ecmwf/findlibs"},{"name":"fonttools","old_version":"4.58.1","new_version":"4.61.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2025.5.1","new_version":"2025.12.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geopandas","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/geopandas/geopandas"},{"name":"h5netcdf","old_version":"1.6.3","new_version":"1.7.3","repository_url":"https://github.com/h5netcdf/h5netcdf"},{"name":"h5py","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/h5py/h5py"},{"name":"highspy","old_version":"1.10.0","new_version":"1.12.0","repository_url":"https://github.com/ERGO-Code/HiGHS"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"ipython","old_version":"9.3.0","new_version":"9.8.0","repository_url":"https://github.com/ipython/ipython"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"linopy","old_version":"0.5.5","new_version":"0.5.8","repository_url":"https://github.com/PyPSA/linopy"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"multiurl","old_version":"0.3.6","new_version":"0.3.7","repository_url":"https://github.com/ecmwf/multiurl"},{"name":"narwhals","old_version":"1.41.0","new_version":"2.13.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"netcdf4","old_version":"1.7.2","new_version":"1.7.3","repository_url":"https://github.com/Unidata/netcdf4-python"},{"name":"networkx","old_version":"3.5","new_version":"3.6","repository_url":"https://github.com/networkx/networkx"},{"name":"numexpr","old_version":"2.10.2","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"numpy","old_version":"2.2.0","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pillow","old_version":"11.2.1","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"polars","old_version":"1.30.0","new_version":"1.35.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyogrio","old_version":"0.11.0","new_version":"0.12.1","repository_url":"https://github.com/geopandas/pyogrio"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytz","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"pyzmq","old_version":"26.4.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scipy","old_version":"1.15.3","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"toolz","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytoolz/toolz"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzdata","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xarray","old_version":"2025.4.0","new_version":"2025.12.0","repository_url":"https://github.com/pydata/xarray"},{"name":"zipp","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 73 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `7.1.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.7` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.1.2` | `6.5.0` |\n| [pypsa](https://github.com/PyPSA/PyPSA) | `0.34.1` | `1.0.5` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [bottleneck](https://github.com/pydata/bottleneck) | `1.5.0` | `1.6.0` |\n| [cdsapi](https://github.com/ecmwf/cdsapi) | `0.7.6` | `0.7.7` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.4.26` | `2025.11.12` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [cfgrib](https://github.com/ecmwf/cfgrib) | `0.9.15.0` | `0.9.15.1` |\n| [cftime](https://github.com/Unidata/cftime) | `1.6.4.post1` | `1.6.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [cloudpickle](https://github.com/cloudpipe/cloudpickle) | `3.1.1` | `3.1.2` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [dask](https://github.com/dask/dask) | `2025.5.1` | `2025.11.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [eccodes](https://github.com/ecmwf/eccodes-python) | `2.42.0` | `2.44.0` |\n| [ecmwf-datastores-client](https://github.com/ecmwf/ecmwf-datastores-client) | `0.2.0` | `0.4.1` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [findlibs](https://github.com/ecmwf/findlibs) | `0.1.1` | `0.1.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.1` | `4.61.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.5.1` | `2025.12.0` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.0` | `1.1.1` |\n| [h5netcdf](https://github.com/h5netcdf/h5netcdf) | `1.6.3` | `1.7.3` |\n| [h5py](https://github.com/h5py/h5py) | `3.14.0` | `3.15.1` |\n| [highspy](https://github.com/ERGO-Code/HiGHS) | `1.10.0` | `1.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [ipython](https://github.com/ipython/ipython) | `9.3.0` | `9.8.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [linopy](https://github.com/PyPSA/linopy) | `0.5.5` | `0.5.8` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [multiurl](https://github.com/ecmwf/multiurl) | `0.3.6` | `0.3.7` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `1.41.0` | `2.13.0` |\n| [netcdf4](https://github.com/Unidata/netcdf4-python) | `1.7.2` | `1.7.3` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.10.2` | `2.14.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.0` | `2.3.5` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [polars](https://github.com/pola-rs/polars) | `1.30.0` | `1.35.2` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyogrio](https://github.com/geopandas/pyogrio) | `0.11.0` | `0.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.7.1` | `3.7.2` |\n| [pytz](https://github.com/stub42/pytz) | `2024.2` | `2025.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `26.4.0` | `27.1.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.30.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.16.3` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [toolz](https://github.com/pytoolz/toolz) | `1.0.0` | `1.1.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [tzdata](https://github.com/python/tzdata) | `2024.2` | `2025.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [xarray](https://github.com/pydata/xarray) | `2025.4.0` | `2025.12.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.22.0` | `3.23.0` |\n\n\nUpdates `ipykernel` from 6.29.5 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/releases\"\u003eipykernel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using \u003ccode\u003e%notebook\u003c/code\u003e magic to save sessions as \u003ccode\u003e.ipynb\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e). This is enabled using the traitlet \u003ccode\u003eZMQDisplayPublisher.store_display_history\u003c/code\u003e which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.\u003c/p\u003e\n\u003cp\u003eOutput from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless \u003ccode\u003eget_ipython().set_parent()\u003c/code\u003e is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThis release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e), kernels launched in new threads failing asserts (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e), and \u003ccode\u003eContextVar\u003c/code\u003es persisting between cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e). There is also a fix for keyboard interrupts on Windows (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStore display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1435\"\u003e#1435\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix ContextVar persistence across cells \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1462\"\u003e#1462\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix matplotlib eventloops \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1458\"\u003e#1458\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefer to kernel launching thread instead of assuming the main thread \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1455\"\u003e#1455\u003c/a\u003e (\u003ca href=\"https://github.com/dfalbel\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix routing of background thread output when no parent is set explicitly \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1451\"\u003e#1451\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KeyboardInterrupt on Windows by manually resetting interrupt event \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1434\"\u003e#1434\u003c/a\u003e (\u003ca href=\"https://github.com/ptosco\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate pre-commit and related \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1465\"\u003e#1465\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest that matplotlib event loop integration is responsive \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1463\"\u003e#1463\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests for 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1453\"\u003e#1453\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14\u0026amp;to=2025-10-27\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​lumberbot-app\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.0.1 is a bug fix release to support CPython 3.14.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid overriding Thread._context in Python 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1447\"\u003e#1447\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md\"\u003eipykernel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using \u003ccode\u003e%notebook\u003c/code\u003e magic to save sessions as \u003ccode\u003e.ipynb\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e). This is enabled using the traitlet \u003ccode\u003eZMQDisplayPublisher.store_display_history\u003c/code\u003e which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.\u003c/p\u003e\n\u003cp\u003eOutput from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless \u003ccode\u003eget_ipython().set_parent()\u003c/code\u003e is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThis release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e), kernels launched in new threads failing asserts (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e), and \u003ccode\u003eContextVar\u003c/code\u003es persisting between cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e). There is also a fix for keyboard interrupts on Windows (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStore display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1435\"\u003e#1435\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix ContextVar persistence across cells \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1462\"\u003e#1462\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix matplotlib eventloops \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1458\"\u003e#1458\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefer to kernel launching thread instead of assuming the main thread \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1455\"\u003e#1455\u003c/a\u003e (\u003ca href=\"https://github.com/dfalbel\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix routing of background thread output when no parent is set explicitly \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1451\"\u003e#1451\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KeyboardInterrupt on Windows by manually resetting interrupt event \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1434\"\u003e#1434\u003c/a\u003e (\u003ca href=\"https://github.com/ptosco\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate pre-commit and related \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1465\"\u003e#1465\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest that matplotlib event loop integration is responsive \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1463\"\u003e#1463\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests for 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1453\"\u003e#1453\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14\u0026amp;to=2025-10-27\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​lumberbot-app\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.0.1 is a bug fix release to support CPython 3.14.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid overriding Thread._context in Python 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1447\"\u003e#1447\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix 7.x license warnings \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1448\"\u003e#1448\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Test on PyPy 3.11 instead of 3.10 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1444\"\u003e#1444\u003c/a\u003e (\u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\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/ipython/ipykernel/commit/39eaf96ab6db0d0ff9ad269831384c53a11e11d8\"\u003e\u003ccode\u003e39eaf96\u003c/code\u003e\u003c/a\u003e Publish 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003e\u003ccode\u003e6f61a68\u003c/code\u003e\u003c/a\u003e test that matplotlib event loop integration is responsive (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1463\"\u003e#1463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/8446e02948c390793e129affeceedfa30ed5080f\"\u003e\u003ccode\u003e8446e02\u003c/code\u003e\u003c/a\u003e Fix KeyboardInterrupt on Windows by manually resetting interrupt event (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/dd1e09484854c8dedcd98436bc01b6b8e1cc9034\"\u003e\u003ccode\u003edd1e094\u003c/code\u003e\u003c/a\u003e update pre-commit and related (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1465\"\u003e#1465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/95f245138589db4f723b8af06107cdfeadc53314\"\u003e\u003ccode\u003e95f2451\u003c/code\u003e\u003c/a\u003e fix ContextVar persistence across cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/c56a7aab3cad1fb91f7e7185dc7403d561ecd667\"\u003e\u003ccode\u003ec56a7aa\u003c/code\u003e\u003c/a\u003e Fix matplotlib eventloops (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/c7af34cd19ebcd43f5aafe1919909feb6e898387\"\u003e\u003ccode\u003ec7af34c\u003c/code\u003e\u003c/a\u003e Refer to kernel laucnhing thread instead of assuming the main thread (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/7193d14de447a18470a18d60b81eda5f0048b6aa\"\u003e\u003ccode\u003e7193d14\u003c/code\u003e\u003c/a\u003e Fix routing of background thread output when no parent is set explicitly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/b8f5dfc3a35a658c66b85213e60f634bd8a44488\"\u003e\u003ccode\u003eb8f5dfc\u003c/code\u003e\u003c/a\u003e Store display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/93f11dbb02692a7922cb6fdb4ebadffdb8b691c0\"\u003e\u003ccode\u003e93f11db\u003c/code\u003e\u003c/a\u003e update tests for 3.14 (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipykernel/compare/v6.29.5...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.3 to 3.10.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.7\u003c/h2\u003e\n\u003cp\u003eThis is the latest bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe most important update in this release is that the minimum version\nof \u003ccode\u003epyparsing\u003c/code\u003e has been updated to version 3.0.\u003c/p\u003e\n\u003ch2\u003eREL: v3.10.6\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eHighlights from this release include:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix regression of hi-dpi support for Qt\n- Fix race condition in TexManager.make_dvi \u0026amp; make_png\n- Various documentation and other bugfixes\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eREL: v3.10.5\u003c/h2\u003e\n\u003cp\u003eThis is the fourth bugfix release of the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eIncluded in this release is distributed wheels for Python 3.14 (including freethreaded) and Windows ARM.\u003c/p\u003e\n\u003cp\u003eThere are also several smaller bugfixes.\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/matplotlib/matplotlib/commit/4aeb773422464799998d900198b35cb80e94b3e1\"\u003e\u003ccode\u003e4aeb773\u003c/code\u003e\u003c/a\u003e REL: v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/080add32f6b3c82075ccfb1111b21d5ff9e9c075\"\u003e\u003ccode\u003e080add3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.6-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a604a8beed19bdda1355a29a12ab2904367cf140\"\u003e\u003ccode\u003ea604a8b\u003c/code\u003e\u003c/a\u003e Github Stats v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/f550261fadf30702a42bc85f71e3489a3c2f6b99\"\u003e\u003ccode\u003ef550261\u003c/code\u003e\u003c/a\u003e Zenodo v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9a5e3e4253a3deaa5c83451b1208b5d46759ff7c\"\u003e\u003ccode\u003e9a5e3e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30628\"\u003e#30628\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30626-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb8cb0ce31f6965713a5d46fe4fadf2dffb74773\"\u003e\u003ccode\u003eeb8cb0c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30626\"\u003e#30626\u003c/a\u003e: MNT: Fix new F401 unused imports warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8fadc71e0e372f05aa0305ef425c5152d70d6f39\"\u003e\u003ccode\u003e8fadc71\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29745\"\u003e#29745\u003c/a\u003e: Use PEP8 style method and function names from (\u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30589\"\u003e#30589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/098876ee6f695f6c5297d4cf3f974c9d64ff4c79\"\u003e\u003ccode\u003e098876e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30614\"\u003e#30614\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30612-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb42d8637ba5891aa806fa6b0ed73835c16b2741\"\u003e\u003ccode\u003eeb42d86\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30612\"\u003e#30612\u003c/a\u003e: MNT: update black pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4a9c187a73fce92074b262612b3285dcff2d615e\"\u003e\u003ccode\u003e4a9c187\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30572\"\u003e#30572\u003c/a\u003e from QuLogic/auto-backport-of-pr-30571-on-v3.10.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.3...v3.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\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/pandas-dev/pandas/commit/9c8bc3e55188c8aff37207a74f1dd144980b8874\"\u003e\u003ccode\u003e9c8bc3e\u003c/code\u003e\u003c/a\u003e RLS: 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6aa788a00bda9b0f004302076dad94df3edeafc7\"\u003e\u003ccode\u003e6aa788a\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: prepare 2.3.3 whatsnew notes for release (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62499\"\u003e#62499\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62508\"\u003e#62508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b64f0df403d11ac733d9f460f89a5e99c8044ed0\"\u003e\u003ccode\u003eb64f0df\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: avoid validation error for ufunc with string[python] ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/058eb2b0edfc408dae9966ef1f03372f2a3ff04c\"\u003e\u003ccode\u003e058eb2b\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: String[pyarrow] comparison with mixed object (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62424\"\u003e#62424\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2ca088daef6a9d9333fea8aedffc7e50d28dfdee\"\u003e\u003ccode\u003e2ca088d\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DEPR: remove the Period resampling deprecation (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62480\"\u003e#62480\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62\"\u003e#62\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/92bf98f623572ed053d48be5818c8503f1b61888\"\u003e\u003ccode\u003e92bf98f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix .str.isdigit to honor unicode superscript for older...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e57c7d6a2247316188fba0ba2a0db3c11028d75c\"\u003e\u003ccode\u003ee57c7d6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62452\"\u003e#62452\u003c/a\u003e on branch 2.3.x (TST: Adjust tests for numexpr 2.13) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62454\"\u003e#62454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e0fe9a03c90e560c34a3bbbdd1735a8b64f7b281\"\u003e\u003ccode\u003ee0fe9a0\u003c/code\u003e\u003c/a\u003e Backport to 2.3.x: REGR: from_records not initializing subclasses properly (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/23a1085e641c8e3a5b500e319c5973e4160b9236\"\u003e\u003ccode\u003e23a1085\u003c/code\u003e\u003c/a\u003e BUG: improve future warning for boolean operations with missaligned indexes (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/61136969fb18b438b6660bd5d485d0236dbf4a71\"\u003e\u003ccode\u003e6113696\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62396\"\u003e#62396\u003c/a\u003e on branch 2.3.x (PKG/DOC: indicate Python 3.14 support in ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.1.2 to 6.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.5.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.3.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5421\"\u003e#5421\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplate\u003c/code\u003e for \u003ccode\u003ecandlestick\u003c/code\u003e and \u003ccode\u003eohlc\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7619\"\u003e#7619\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where numpy datetime contained in Python list was converted to integer [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5415\"\u003e#5415\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5388\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplatefallback\u003c/code\u003e and \u003ccode\u003etexttemplatefallback\u003c/code\u003e attributes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7577\"\u003e#7577\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;SI extended\u0026quot; formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7249\"\u003e#7249\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003ecreate_hexbin_mapbox\u003c/code\u003e in favor of \u003ccode\u003ecreate_hexbin_map\u003c/code\u003e, update related function calls [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5358\"\u003e5358\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/ajlien\"\u003e\u003ccode\u003e@​ajlien\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.1\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5357\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eFix issue preventing Scattergl plots with text elements from rendering [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7563\"\u003eplotly.js#7563\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse native legends when converting from matplotlib [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5312\"\u003e#5312\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e to the contribution!\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eshared_yaxes\u003c/code\u003e to work with secondary axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5180\"\u003e#5180\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/gmjw\"\u003e\u003ccode\u003e@​gmjw\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where width/height in plot layout were not respected during Kaleido image export [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5325\"\u003e#5325\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typo in default argument to \u003ccode\u003e_ternary_contour.py\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5315\"\u003e#5315\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Lexachoc\"\u003e\u003ccode\u003e@​Lexachoc\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003efig.show()\u003c/code\u003e behavior when \u003ccode\u003eipython\u003c/code\u003e is installed [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5258\"\u003e#5258\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.3.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Plotly.js from version 3.0.1 to version 3.1.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5318\"\u003e#5318\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExposed \u003ccode\u003eplotly.io.get_chrome()\u003c/code\u003e as a function which can be called from within a Python script. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5282\"\u003e#5282\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolved issue causing extraneous engine deprecation warnings [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5287\"\u003e#5287\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/jdbeel\"\u003e\u003ccode\u003e@​jdbeel\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.2.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SRI (Subresource Integrity) hash support for CDN script tags when using \u003ccode\u003einclude_plotlyjs='cdn'\u003c/code\u003e. This enhances security by ensuring browser verification of CDN-served plotly.js files [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5165\"\u003e#5165\u003c/a\u003e] (with thanks to \u003ca href=\"https://github.com/ddworken\"\u003e\u003ccode\u003e@​ddworken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting Plotly.js path via \u003ccode\u003epio.defaults\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5207\"\u003e#5207\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/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.5.0] - 2025-11-17\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.3.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5421\"\u003e#5421\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplate\u003c/code\u003e for \u003ccode\u003ecandlestick\u003c/code\u003e and \u003ccode\u003eohlc\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7619\"\u003e#7619\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where numpy datetime contained in Python list was converted to integer [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5415\"\u003e#5415\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.4.0] - 2025-11-02\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5388\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplatefallback\u003c/code\u003e and \u003ccode\u003etexttemplatefallback\u003c/code\u003e attributes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7577\"\u003e#7577\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;SI extended\u0026quot; formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7249\"\u003e#7249\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003ecreate_hexbin_mapbox\u003c/code\u003e in favor of \u003ccode\u003ecreate_hexbin_map\u003c/code\u003e, update related function calls [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5358\"\u003e5358\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/ajlien\"\u003e\u003ccode\u003e@​ajlien\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.3.1] - 2025-10-02\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5357\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eFix issue preventing Scattergl plots with text elements from rendering [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7563\"\u003eplotly.js#7563\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse native legends when converting from matplotlib [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5312\"\u003e#5312\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e to the contribution!\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eshared_yaxes\u003c/code\u003e to work with secondary axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5180\"\u003e#5180\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/gmjw\"\u003e\u003ccode\u003e@​gmjw\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where width/height in plot layout were not respected during Kaleido image export [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5325\"\u003e#5325\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typo in default argument to \u003ccode\u003e_ternary_contour.py\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5315\"\u003e#5315\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Lexachoc\"\u003e\u003ccode\u003e@​Lexachoc\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003efig.show()\u003c/code\u003e behavior when \u003ccode\u003eipython\u003c/code\u003e is installed [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5258\"\u003e#5258\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.3.0] - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Plotly.js from version 3.0.1 to version 3.1.0. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5318\"\u003e#5318\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExposed \u003ccode\u003eplotly.io.get_chrome()\u003c/code\u003e as a function which can be called from within a Python script. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5282\"\u003e#5282\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolved issue causing extraneous engine deprecation warnings [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5287\"\u003e#5287\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/jdbeel\"\u003e\u003ccode\u003e@​jdbeel\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.2.0] - 2025-06-26\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SRI (Subresource Integrity) hash support for CDN script tags when using \u003ccode\u003einclude_plotlyjs='cdn'\u003c/code\u003e. This enhances security by ensuring browser verification of CDN-served plotly.js files [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5165\"\u003e#5165\u003c/a\u003e] (with thanks to \u003ca href=\"https://github.com/ddworken\"\u003e\u003ccode\u003e@​ddworken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting Plotly.js path via \u003ccode\u003epio.defaults\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5207\"\u003e#5207\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/plotly/plotly.py/commit/b19f8e54350e753b3e82cdc078293e826009a640\"\u003e\u003ccode\u003eb19f8e5\u003c/code\u003e\u003c/a\u003e changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1ec9a16b3700a3399f7bf6d802a42510fe60c215\"\u003e\u003ccode\u003e1ec9a16\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/83a2b0b4594dd330ff23ccdb77770773ac7ef1bc\"\u003e\u003ccode\u003e83a2b0b\u003c/code\u003e\u003c/a\u003e version changes for v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a49f495aee7fbee5ac0a18dab4f563e7a68ce3e7\"\u003e\u003ccode\u003ea49f495\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5421\"\u003e#5421\u003c/a\u003e from plotly/update-plotlyjs-3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/f68752659ebbe499cd50cb4ca961d882aedfa84a\"\u003e\u003ccode\u003ef687526\u003c/code\u003e\u003c/a\u003e update plotly/labextension with files from ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/83ab425007895dabe5f682400bd45671be1a6386\"\u003e\u003ccode\u003e83ab425\u003c/code\u003e\u003c/a\u003e update package-lock with new plotly.js\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a3480f0237e76074fc3d9c47363689ae2b8a8ac7\"\u003e\u003ccode\u003ea3480f0\u003c/code\u003e\u003c/a\u003e package-lock indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/e519d5a46e44c90b24e678a93a2548a7cb0ae567\"\u003e\u003ccode\u003ee519d5a\u003c/code\u003e\u003c/a\u003e update plotly.js to v3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/22b0ac0ee686b1fc06ecb35c1b9b7f8e5261acba\"\u003e\u003ccode\u003e22b0ac0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5415\"\u003e#5415\u003c/a\u003e from plotly/fix-np-date-handling-issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/aa30be57c36d0ca602c0683d2232e7724f2b9dcf\"\u003e\u003ccode\u003eaa30be5\u003c/code\u003e\u003c/a\u003e Update _plotly_utils/basevalidators.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.1.2...v6.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypsa` from 0.34.1 to 1.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyPSA/PyPSA/releases\"\u003epypsa's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.5\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://docs.pypsa.org/latest/release-notes/\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: free up disk space by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1447\"\u003ePyPSA/PyPSA#1447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd user Serentica by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1453\"\u003ePyPSA/PyPSA#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1455\"\u003ePyPSA/PyPSA#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: CVaR optimization fails if components have no marginal costs by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1457\"\u003ePyPSA/PyPSA#1457\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix markdown syntax for pip install command by \u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1460\"\u003ePyPSA/PyPSA#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: run model runs only with src changes by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1462\"\u003ePyPSA/PyPSA#1462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: using inactive generators in global carrier constraint by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1450\"\u003ePyPSA/PyPSA#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo and improve description by \u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1461\"\u003ePyPSA/PyPSA#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate users.md by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1458\"\u003ePyPSA/PyPSA#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix description in stochastic optimization documentation by \u003ca href=\"https://github.com/energyLS\"\u003e\u003ccode\u003e@​energyLS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1452\"\u003ePyPSA/PyPSA#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate users.md / Meridian Economics by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1463\"\u003ePyPSA/PyPSA#1463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broadcasting bug for rolling horizon with linearised UC case by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1464\"\u003ePyPSA/PyPSA#1464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: expressions returning zero for non-extendable generators by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1451\"\u003ePyPSA/PyPSA#1451\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/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1460\"\u003ePyPSA/PyPSA#1460\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v1.0.4...v1.0.5\"\u003ehttps://github.com/PyPSA/PyPSA/compare/v1.0.4...v1.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.4\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://PyPSA.readthedocs.io/en/latest/release-notes.html\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd example notebook on negative prices in unit commitment model by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1434\"\u003ePyPSA/PyPSA#1434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd pypsa-asean by \u003ca href=\"https://github.com/fneum\"\u003e\u003ccode\u003e@​fneum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1435\"\u003ePyPSA/PyPSA#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix link in stochastic optimization example by \u003ca href=\"https://github.com/euronion\"\u003e\u003ccode\u003e@​euronion\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1436\"\u003ePyPSA/PyPSA#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: snapshot selection for operational in multi period optimization by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1437\"\u003ePyPSA/PyPSA#1437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: masking of nan constraints in kvl by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1438\"\u003ePyPSA/PyPSA#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of inactive storage components in constraints/variables by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1442\"\u003ePyPSA/PyPSA#1442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: busmap clustering for multilinks by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1441\"\u003ePyPSA/PyPSA#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: follow up on \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1441\"\u003e#1441\u003c/a\u003e by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1445\"\u003ePyPSA/PyPSA#1445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpin shapely upper bound by \u003ca href=\"https://github.com/brynpickering\"\u003e\u003ccode\u003e@​brynpickering\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1444\"\u003ePyPSA/PyPSA#1444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: use pixi for model tests by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1443\"\u003ePyPSA/PyPSA#1443\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/brynpickering\"\u003e\u003ccode\u003e@​brynpickering\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1444\"\u003ePyPSA/PyPSA#1444\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v1.0.3...v1.0.4\"\u003ehttps://github.com/PyPSA/PyPSA/compare/v1.0.3...v1.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://PyPSA.readthedocs.io/en/latest/release-notes.html\"\u003edocumentation\u003c/a\u003e.\u003c/p\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyPSA/PyPSA/blob/master/docs/release-notes.md\"\u003epypsa's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.5\"\u003e\u003cstrong\u003ev1.0.5\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e4th December 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.5\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix curtailment, capacity, and capex expressions returning zero for non-extendable generators. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix using inactive generators in global carrier constraint. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVaR optimization to handle networks with zero operational costs. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix xarray broadcasting for rolling-horizon with linearized unit commitment optimization. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.4\"\u003e\u003cstrong\u003ev1.0.4\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e21st November 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.4\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix busmap clustering to correctly remap all bus ports in multi-port links. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of inactive \u003ccode\u003eStorageUnit\u003c/code\u003e or \u003ccode\u003eStore\u003c/code\u003e components (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix snapshot selection in operational limit global constraint with investment period. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new example notebook demonstrating negative electricity prices in linearized unit commitment problem. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.3\"\u003e\u003cstrong\u003ev1.0.3\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e6th November 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.3\u0026quot; }\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix ramp_limit_up/down constraints: correctly detect components with ramp limits, handle rolling-horizon windows by using previous-window dispatch, and add unit tests for Link ramp limits and ramping constraints in rolling horizon mode. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.2\"\u003e\u003cstrong\u003ev1.0.2\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e24th October 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.2\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite recursion error when pickling networks. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.1\"\u003e\u003cstrong\u003ev1.0.1\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e20th October 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.1\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix [\u003ccode\u003en.set_snapshots\u003c/code\u003e][pypsa.Network.set_snapshots] to synchronize investment period weightings when snapshots with new periods are set. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix scenario extraction methods ([pypsa.Network.get_scenario][] and [\u003ccode\u003en['scenario']\u003c/code\u003e][pypsa.Network.\u003cstrong\u003egetitem\u003c/strong\u003e]) to properly handle empty components (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bus validation when adding global constraints via [pypsa.Network.add][], eliminating false warnings for GlobalConstraints. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix dimension name consistency when adding investment period weightings. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.0\"\u003e\u003cstrong\u003ev1.0.0\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e14th October 2025\u003c!-- raw HTML omitted --\u003e 🎉 { id=\u0026quot;v1.0.0\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003e\u003cstrong\u003ePyPSA 1.0\u003c/strong\u003e is here!\u003c/h3\u003e\n\u003cp\u003eCheck out \u003ca href=\"https://github.com/PyPSA/PyPSA/blob/master/docs/v1-guide.md\"\u003eWhat's new in PyPSA v1.0\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eFeatures\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/PyPSA/PyPSA/commit/470e3de1c8086f8805deca9d4c834d11e2f49c57\"\u003e\u003ccode\u003e470e3de\u003c/code\u003e\u003c/a\u003e [github-actions.ci] prepare release v1.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/56e9645a158e7ea8ae7df5bd2fd8b3cde7cbfe05\"\u003e\u003ccode\u003e56e9645\u003c/code\u003e\u003c/a\u003e prepare release \u003ccode\u003ev1.0.5\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/6c46fdd0f68be1543af9f17aac8af978f2030dfc\"\u003e\u003ccode\u003e6c46fdd\u003c/code\u003e\u003c/a\u003e fix: expressions returning zero for non-extendable generators (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1451\"\u003e#1451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/325e6620340d350b3977049eb0a078542c3003d6\"\u003e\u003ccode\u003e325e662\u003c/code\u003e\u003c/a\u003e Fix broadcasting bug for rolling horizon with linearised UC case (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1464\"\u003e#1464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/a4b5416e8346b4e696c6b95d25d1aed28dfd6723\"\u003e\u003ccode\u003ea4b5416\u003c/code\u003e\u003c/a\u003e Update users.md / Meridian Economics (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1463\"\u003e#1463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/4c7037dbd8b241f29494ff6473ba97e36364ee87\"\u003e\u003ccode\u003e4c7037d\u003c/code\u003e\u003c/a\u003e Update example of stochastic optimization documentation (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/53324de38945dd273185d018002649186f9f514b\"\u003e\u003ccode\u003e53324de\u003c/code\u003e\u003c/a\u003e Update users.md (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/2532a8a251cfc58d7c49669dc3693d780bac7f16\"\u003e\u003ccode\u003e2532a8a\u003c/code\u003e\u003c/a\u003e docs: fix typo and improve description (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/7460437c63887d542c1b90d65f103e4e4ff1ca56\"\u003e\u003ccode\u003e7460437\u003c/code\u003e\u003c/a\u003e fix: using inactive generators in global carrier constraint (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/681b9ac3fd5f6edeb9d23bf9ca288107f67b3965\"\u003e\u003ccode\u003e681b9ac\u003c/code\u003e\u003c/a\u003e ci: run model runs only with src changes (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1462\"\u003e#1462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v0.34.1...v1.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bottleneck` from 1.5.0 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydata/bottleneck/blob/master/RELEASE.rst\"\u003ebottleneck's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBottleneck 1.6.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003eRelease date 2025-09-05\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eMaintenance\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Add Python 3.14 support, drop Python 3.9 \n- Add free-threading trove classifier\n- Bump upper bound on numpy to account for numpy 2.3.x\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/3e5e705762b866e401eb9c0de9ce16b4cabc6348\"\u003e\u003ccode\u003e3e5e705\u003c/code\u003e\u003c/a\u003e MAINT: fix warning about \u003ccode\u003epp_*\u003c/code\u003e skip selector for PyPy wheels not being neede...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/e3978ab0b742fc1d826193dbdf81f8c0f96b9bcf\"\u003e\u003ccode\u003ee3978ab\u003c/code\u003e\u003c/a\u003e MNT: Prepare changelog for 1.6.0  (\u003ca href=\"https://redirect.github.com/pydata/bottleneck/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/aff8796c9ccb5e4fe5baa7b0dff0076eacdfcae3\"\u003e\u003ccode\u003eaff8796\u003c/code\u003e\u003c/a\u003e CI: windows-2019 runner was retired, move to windows-2022\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/f5f011f1e165f7ad8ce64d306aaff0a3f4d335a8\"\u003e\u003ccode\u003ef5f011f\u003c/code\u003e\u003c/a\u003e MAINT: add Python 3.14 support, drop Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/f3944e9b02b1fa48322624e2efd1468f33a05f79\"\u003e\u003ccode\u003ef3944e9\u003c/code\u003e\u003c/a\u003e MAINT: add free-threading trove classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/148684f2bfd1af29e791fa6a7773641a7e025754\"\u003e\u003ccode\u003e148684f\u003c/code\u003e\u003c/a\u003e BLD: bump upper bound on numpy to account for numpy 2.3.x\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydata/bottleneck/compare/v1.5.0...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cdsapi` from 0.7.6 to 0.7.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ecmwf/cdsapi/releases\"\u003ecdsapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.7.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\"\u003ehttps://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ecmwf/cdsapi/commit/e1be102bce7b7dafb27e9831c42863fdeada557b\"\u003e\u003ccode\u003ee1be102\u003c/code\u003e\u003c/a\u003e Update setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ecmwf/cdsapi/commit/72d7cec0b611c2f71c1a69da4668368df5118cdb\"\u003e\u003ccode\u003e72d7cec\u003c/code\u003e\u003c/a\u003e back to development version\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.4.26 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.04.26...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://githu...\n\n_Description has been truncated_","html_url":"https://github.com/ryanjenkinson/data-centre-modelling/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanjenkinson%2Fdata-centre-modelling/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-11-17T13:28:41.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"3633347426","node_id":"PR_kwDOMHVffc6z23Pp","number":72,"state":"closed","title":"Bump the python-packages group across 1 directory with 67 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-24T13:46:51.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-17T13:28:41.000Z","updated_at":"2025-11-24T13:46:53.000Z","time_to_close":605890,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":67,"packages":[{"name":"anyio","old_version":"4.9.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.2"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.8","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"contourpy","old_version":"1.3.1","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"flask","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.60.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"imbalanced-learn","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/scikit-learn-contrib/imbalanced-learn"},{"name":"ipykernel","old_version":"6.29.5","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"9.0.2","new_version":"9.7.0","repository_url":"https://github.com/ipython/ipython"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"joblib","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/joblib/joblib"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"jupyterlab","old_version":"4.4.4","new_version":"4.4.10","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"jupyterlab-server","old_version":"2.27.3","new_version":"2.28.0","repository_url":"https://github.com/jupyterlab/jupyterlab_server"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"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.1","new_version":"3.10.7","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"nltk","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/nltk/nltk"},{"name":"notebook","old_version":"7.4.4","new_version":"7.4.7","repository_url":"https://github.com/jupyter/notebook"},{"name":"numpy","old_version":"2.2.4","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.3.0","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pillow","old_version":"11.2.1","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"python-json-logger","old_version":"3.3.0","new_version":"4.0.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"qtconsole","old_version":"5.6.1","new_version":"5.7.0","repository_url":"https://github.com/jupyter/qtconsole"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"regex","old_version":"2024.11.6","new_version":"2025.11.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.29.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scikit-learn","old_version":"1.6.1","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.15.2","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20251115","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"webcolors","old_version":"24.11.1","new_version":"25.10.0","repository_url":"https://github.com/ubernostrum/webcolors"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 67 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.11.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.2` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.11.12` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.1.8` | `8.3.1` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.1` | `1.3.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.60.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [imbalanced-learn](https://github.com/scikit-learn-contrib/imbalanced-learn) | `0.13.0` | `0.14.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `7.1.0` |\n| [ipython](https://github.com/ipython/ipython) | `9.0.2` | `9.7.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.1` | `1.5.2` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.4` | `4.4.10` |\n| [jupyterlab-server](https://github.com/jupyterlab/jupyterlab_server) | `2.27.3` | `2.28.0` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.1` | `3.10.7` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.1` | `3.9.2` |\n| [notebook](https://github.com/jupyter/notebook) | `7.4.4` | `7.4.7` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.4` | `2.3.5` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.0` | `2.3.3` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.3.0` | `4.0.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [qtconsole](https://github.com/jupyter/qtconsole) | `5.6.1` | `5.7.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.11.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.29.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.6.1` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.2` | `1.16.3` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20251115` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [webcolors](https://github.com/ubernostrum/webcolors) | `24.11.1` | `25.10.0` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n\n\nUpdates `anyio` from 4.9.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ccode\u003etask call graphs\u003c/code\u003e_ on Python 3.14 and later when using\nAnyIO's task groups\n(\u003ccode\u003e[#1025](https://github.com/agronholm/anyio/issues/1025) \u0026lt;https://github.com/agronholm/anyio/pull/1025\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module\n(\u003ccode\u003e[#1001](https://github.com/agronholm/anyio/issues/1001) \u0026lt;https://github.com/agronholm/anyio/pull/1001\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the winloop_ implementation\n(\u003ccode\u003e[#960](https://github.com/agronholm/anyio/issues/960) \u0026lt;https://github.com/agronholm/anyio/pull/960\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e\n(\u003ccode\u003e[#1003](https://github.com/agronholm/anyio/issues/1003) \u0026lt;https://github.com/agronholm/anyio/pull/1003\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.)\n(\u003ccode\u003e[#1009](https://github.com/agronholm/anyio/issues/1009) \u0026lt;https://github.com/agronholm/anyio/pull/1009\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero\n(\u003ccode\u003e[#1019](https://github.com/agronholm/anyio/issues/1019) \u0026lt;https://github.com/agronholm/anyio/pull/1019\u0026gt;\u003c/code\u003e_; requires Python 3.10 or\nlater when using Trio)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e\nfunction (\u003ccode\u003e[#1021](https://github.com/agronholm/anyio/issues/1021) \u0026lt;https://github.com/agronholm/anyio/pull/1021\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and\n\u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in\nsuch cases (\u003ccode\u003e[#671](https://github.com/agronholm/anyio/issues/671) \u0026lt;https://github.com/agronholm/anyio/issues/671\u0026gt;\u003c/code\u003e_; PR by\n\u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio\n(\u003ccode\u003e[#1002](https://github.com/agronholm/anyio/issues/1002) \u0026lt;https://github.com/agronholm/anyio/issues/1002\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from\n\u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function\n(\u003ccode\u003e[#1011](https://github.com/agronholm/anyio/issues/1011) \u0026lt;https://github.com/agronholm/anyio/issues/1011\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _task call graphs: \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003ehttps://docs.python.org/3/library/asyncio-graph.html\u003c/a\u003e\n.. _winloop: \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ehttps://github.com/Vizonex/Winloop\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4.11.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\n(\u003ccode\u003e[#975](https://github.com/agronholm/anyio/issues/975) \u0026lt;https://github.com/agronholm/anyio/pull/975\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\nkeyword argument (\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\n(\u003ccode\u003e[#971](https://github.com/agronholm/anyio/issues/971) \u0026lt;https://github.com/agronholm/anyio/pull/971\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/08737af202f6610cdb8ba53fecaefd9c03269637\"\u003e\u003ccode\u003e08737af\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059\"\u003e\u003ccode\u003e8bb9fe0\u003c/code\u003e\u003c/a\u003e Fixed the inconsistent exception on sending to a closed TCP stream (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981\"\u003e\u003ccode\u003e9637093\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9\"\u003e\u003ccode\u003ef1bc6ee\u003c/code\u003e\u003c/a\u003e Fixed changelog entry formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133\"\u003e\u003ccode\u003e0b58964\u003c/code\u003e\u003c/a\u003e Mentioned the sub-interpreter support in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71\"\u003e\u003ccode\u003e1ed112c\u003c/code\u003e\u003c/a\u003e Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0\"\u003e\u003ccode\u003eaceeee0\u003c/code\u003e\u003c/a\u003e Re-enabled coverage reporting on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2\"\u003e\u003ccode\u003e6b890dc\u003c/code\u003e\u003c/a\u003e Reworded a changelog entry and added PR links to others\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd\"\u003e\u003ccode\u003e944257d\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a\"\u003e\u003ccode\u003e087975f\u003c/code\u003e\u003c/a\u003e Fixed a documentation style (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `arrow` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/releases\"\u003earrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eADDED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1222\"\u003earrow-py/arrow#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1201\"\u003earrow-py/arrow#1201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Macedonian in Latin locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1200\"\u003earrow-py/arrow#1200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian/Farsi locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1190\"\u003e#1190\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1190\"\u003earrow-py/arrow#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded week and weeks to Thai locale timeframes. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1218\"\u003e#1218\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1218\"\u003earrow-py/arrow#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded weeks to Catalan locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1189\"\u003e#1189\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1189\"\u003earrow-py/arrow#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1172\"\u003e#1172\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1172\"\u003earrow-py/arrow#1172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCHANGED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated Arrow to use ZoneInfo for timezones instead of pytz. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1217\"\u003e#1217\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1217\"\u003earrow-py/arrow#1217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFIXED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed humanize month limits. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1224\"\u003earrow-py/arrow#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1171\"\u003e#1171\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1171\"\u003earrow-py/arrow#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed spelling and removed poorly used expressions in Korean locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1181\"\u003e#1181\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1181\"\u003earrow-py/arrow#1181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1194\"\u003e#1194\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1194\"\u003earrow-py/arrow#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1184\"\u003e#1184\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1184\"\u003earrow-py/arrow#1184\u003c/a\u003e), [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1186\"\u003e#1186\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1186\"\u003earrow-py/arrow#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1182\"\u003e#1182\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1182\"\u003earrow-py/arrow#1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eINTERNAL\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded codecov test results. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1223\"\u003earrow-py/arrow#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003eAdded docstrings to parser.py. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1010\"\u003e#1010\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1010\"\u003earrow-py/arrow#1010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated Python versions support and bumped CI dependencies. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1177\"\u003e#1177\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1177\"\u003earrow-py/arrow#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded dependabot for GitHub actions. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1193\"\u003e#1193\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1193\"\u003earrow-py/arrow#1193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMoved dateutil types to test requirements. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1183\"\u003e#1183\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1183\"\u003earrow-py/arrow#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1180\"\u003e#1180\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1180\"\u003earrow-py/arrow#1180\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst\"\u003earrow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0 (2025-10-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. \u003ccode\u003ePR [#1222](https://github.com/arrow-py/arrow/issues/1222) \u0026lt;https://github.com/arrow-py/arrow/pull/1222\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. \u003ccode\u003ePR [#1201](https://github.com/arrow-py/arrow/issues/1201) \u0026lt;https://github.com/arrow-py/arrow/pull/1201\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Macedonian in Latin locale support. \u003ccode\u003ePR [#1200](https://github.com/arrow-py/arrow/issues/1200) \u0026lt;https://github.com/arrow-py/arrow/pull/1200\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian/Farsi locale support. \u003ccode\u003ePR [#1190](https://github.com/arrow-py/arrow/issues/1190) \u0026lt;https://github.com/arrow-py/arrow/pull/1190\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added week and weeks to Thai locale timeframes. \u003ccode\u003ePR [#1218](https://github.com/arrow-py/arrow/issues/1218) \u0026lt;https://github.com/arrow-py/arrow/pull/1218\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added weeks to Catalan locale. \u003ccode\u003ePR [#1189](https://github.com/arrow-py/arrow/issues/1189) \u0026lt;https://github.com/arrow-py/arrow/pull/1189\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. \u003ccode\u003ePR [#1172](https://github.com/arrow-py/arrow/issues/1172) \u0026lt;https://github.com/arrow-py/arrow/pull/1172\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[CHANGED] Migrated Arrow to use ZoneInfo for timezones instead of pytz. \u003ccode\u003ePR [#1217](https://github.com/arrow-py/arrow/issues/1217) \u0026lt;https://github.com/arrow-py/arrow/pull/1217\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed humanize month limits. \u003ccode\u003ePR [#1224](https://github.com/arrow-py/arrow/issues/1224) \u0026lt;https://github.com/arrow-py/arrow/pull/1224\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. \u003ccode\u003ePR [#1171](https://github.com/arrow-py/arrow/issues/1171) \u0026lt;https://github.com/arrow-py/arrow/pull/1171\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed spelling and removed poorly used expressions in Korean locale. \u003ccode\u003ePR [#1181](https://github.com/arrow-py/arrow/issues/1181) \u0026lt;https://github.com/arrow-py/arrow/pull/1181\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Updated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. \u003ccode\u003ePR [#1194](https://github.com/arrow-py/arrow/issues/1194) \u0026lt;https://github.com/arrow-py/arrow/pull/1194\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Improved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). \u003ccode\u003ePR [#1184](https://github.com/arrow-py/arrow/issues/1184) \u0026lt;https://github.com/arrow-py/arrow/pull/1184\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003ePR [#1186](https://github.com/arrow-py/arrow/issues/1186) \u0026lt;https://github.com/arrow-py/arrow/pull/1186\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e[FIXED] Addressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. \u003ccode\u003ePR [#1182](https://github.com/arrow-py/arrow/issues/1182) \u0026lt;https://github.com/arrow-py/arrow/pull/1182\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added codecov test results. \u003ccode\u003ePR [#1223](https://github.com/arrow-py/arrow/issues/1223) \u0026lt;https://github.com/arrow-py/arrow/pull/1223\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added docstrings to parser.py. \u003ccode\u003ePR [#1010](https://github.com/arrow-py/arrow/issues/1010) \u0026lt;https://github.com/arrow-py/arrow/pull/1010\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated Python versions support and bumped CI dependencies. \u003ccode\u003ePR [#1177](https://github.com/arrow-py/arrow/issues/1177) \u0026lt;https://github.com/arrow-py/arrow/pull/1177\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added dependabot for GitHub actions. \u003ccode\u003ePR [#1193](https://github.com/arrow-py/arrow/issues/1193) \u0026lt;https://github.com/arrow-py/arrow/pull/1193\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Moved dateutil types to test requirements. \u003ccode\u003ePR [#1183](https://github.com/arrow-py/arrow/issues/1183) \u0026lt;https://github.com/arrow-py/arrow/pull/1183\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. \u003ccode\u003ePR [#1180](https://github.com/arrow-py/arrow/issues/1180) \u0026lt;https://github.com/arrow-py/arrow/pull/1180\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/2c1f5185ad66bf3b1cf8c0812f4b4fe65ac46656\"\u003e\u003ccode\u003e2c1f518\u003c/code\u003e\u003c/a\u003e Bump release CI flow to use Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/2483bfea4ec8a4da609036aba3ce1b32cb571875\"\u003e\u003ccode\u003e2483bfe\u003c/code\u003e\u003c/a\u003e Bump changelog date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c61de9299733da6d4a7e8badabae43684a3f9da2\"\u003e\u003ccode\u003ec61de92\u003c/code\u003e\u003c/a\u003e Bump version and add changelog (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1228\"\u003e#1228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c3bb589536b283e3e3886d1d6bc01a6374c8e656\"\u003e\u003ccode\u003ec3bb589\u003c/code\u003e\u003c/a\u003e Update pypy CI version and update pre-commit dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/85cd905332d108303da1cbd0f2336fcae058147f\"\u003e\u003ccode\u003e85cd905\u003c/code\u003e\u003c/a\u003e Run tests on next Python release (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/4c8c44aefc0e5504b9c3cbf0d6adbb0ec4aa4571\"\u003e\u003ccode\u003e4c8c44a\u003c/code\u003e\u003c/a\u003e Add week_start parameter to floor() and ceil() (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/7ccbe66122ca53d90acf9c69c37aa95c81a1fe89\"\u003e\u003ccode\u003e7ccbe66\u003c/code\u003e\u003c/a\u003e add codecov test results (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/05cd9b47d0db1c22b44cb739832f1b9701855313\"\u003e\u003ccode\u003e05cd9b4\u003c/code\u003e\u003c/a\u003e fix humanize month limits (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/ea756ea779468b0c6a9f45439dc05cfd5e71ee1e\"\u003e\u003ccode\u003eea756ea\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/86f7520f15b2dd46f9c49f71ce5c15bbc537ed67\"\u003e\u003ccode\u003e86f7520\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/arrow-py/arrow/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.14.2\n\nUpdates `bleach` from 6.2.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.8 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/8.3.1/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNo...\n\n_Description has been truncated_","html_url":"https://github.com/manulthanura/ReviewClassifier/pull/72","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/manulthanura%2FReviewClassifier/issues/72","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/72/packages"}},{"old_version":"~=2.17.1","new_version":"~=2.21.2","update_type":"minor","path":"/tests","pr_created_at":"2025-11-10T08:10:20.000Z","version_change":"~=2.17.1 → ~=2.21.2","issue":{"uuid":"3606691835","node_id":"PR_kwDOD-zs2M6ydq6f","number":334,"state":"open","title":"Update fastjsonschema requirement from ~=2.17.1 to ~=2.21.2 in /tests","user":"dependabot[bot]","labels":["dependencies","python","category: dependency_changes","Stale"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T08:10:20.000Z","updated_at":"2025-11-25T00:44:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"fastjsonschema","old_version":"~=2.17.1","new_version":"~=2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":"/tests","ecosystem":"pip"},"body":"Updates the requirements on [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.1 (2023-12-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed date format to accept only two digit months and days\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.0 (2023-11-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003euse_formats\u003c/code\u003e parameter to allow disable automatic assertions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.1 (2023-10-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazy import of urllib to improve import performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.0 (2023-07-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error message for required props - only missing are reported\u003c/li\u003e\n\u003cli\u003eFixed support of boolean schema in if-then-else application\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.1 (2023-05-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed tests in sdist\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.0 (2023-05-21)\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/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.17.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/rnugmanx/openvino/pull/334","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rnugmanx%2Fopenvino/issues/334","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/334/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-11-04T13:32:47.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"3586611862","node_id":"PR_kwDOLzgXB86xbAwt","number":615,"state":"closed","title":"Bump the allpip group across 1 directory with 68 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-10T07:46:16.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-04T13:32:47.000Z","updated_at":"2025-11-10T07:46:19.000Z","time_to_close":497609,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"allpip","update_count":68,"packages":[{"name":"alembic","old_version":"1.16.5","new_version":"1.17.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.11.9","new_version":"2.12.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"uvicorn","old_version":"0.36.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"sqlalchemy","old_version":"2.0.43","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"minio","old_version":"7.2.16","new_version":"7.2.18","repository_url":"https://github.com/minio/minio-py"},{"name":"coverage","old_version":"7.10.7","new_version":"7.11.0","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"ruff","old_version":"0.13.1","new_version":"0.14.3","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pyright","old_version":"1.1.405","new_version":"1.1.407","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"anyio","old_version":"4.8.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi","old_version":"23.1.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachecontrol","old_version":"0.14.1","new_version":"0.14.3","repository_url":"https://github.com/psf/cachecontrol"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.10.5","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cryptography","old_version":"44.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"cssbeautifier","old_version":"1.15.1","new_version":"1.15.4","repository_url":"https://github.com/beautifier/js-beautify"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"editorconfig","old_version":"0.17.0","new_version":"0.17.1","repository_url":"https://github.com/editorconfig/editorconfig-core-py"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.16.1","new_version":"3.20.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"findpython","old_version":"0.6.2","new_version":"0.7.0","repository_url":"https://github.com/frostming/findpython"},{"name":"fsspec","old_version":"2024.12.0","new_version":"2025.10.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.1.1","new_version":"3.2.4","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"httptools","old_version":"0.6.4","new_version":"0.7.1","repository_url":"https://github.com/MagicStack/httptools"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.15","repository_url":"https://github.com/pre-commit/identify"},{"name":"idna","old_version":"3.10","new_version":"3.11","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":"jaraco-functools","old_version":"4.1.0","new_version":"4.3.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"jeepney","old_version":"0.8.0","new_version":"0.9.0"},{"name":"jsbeautifier","old_version":"1.15.1","new_version":"1.15.4","repository_url":"https://github.com/ghost6991/Jsbeautifier"},{"name":"json5","old_version":"0.10.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"mako","old_version":"1.3.8","new_version":"1.3.10","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":"more-itertools","old_version":"10.5.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"msgpack","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.0","repository_url":"https://github.com/aio-libs/multidict"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pbs-installer","old_version":"2025.2.12","new_version":"2025.10.31","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"pkginfo","old_version":"1.12.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"propcache","old_version":"0.2.1","new_version":"0.4.1","repository_url":"https://github.com/aio-libs/propcache"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pycryptodome","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"rapidfuzz","old_version":"3.11.0","new_version":"3.14.3","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"regex","old_version":"2024.11.6","new_version":"2025.11.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"secretstorage","old_version":"3.3.3","new_version":"3.4.0","repository_url":"https://github.com/mitya57/secretstorage"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.1.6.15","new_version":"2025.9.11.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"validators","old_version":"0.34.0","new_version":"0.35.0","repository_url":"https://github.com/python-validators/validators"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.0.3","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"websockets","old_version":"14.1","new_version":"15.0.1","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"1.17.0","new_version":"2.0.0","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"xattr","old_version":"1.1.4","new_version":"1.3.0","repository_url":"https://github.com/xattr/xattr"},{"name":"yarl","old_version":"1.18.3","new_version":"1.22.0","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"}],"path":null,"ecosystem":"pip"},"body":"Bumps the allpip group with 64 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.5` | `1.17.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.9` | `2.12.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.10.1` | `2.11.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.36.0` | `0.38.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.44` |\n| [minio](https://github.com/minio/minio-py) | `7.2.16` | `7.2.18` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.7` | `7.11.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.1` | `0.14.3` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.405` | `1.1.407` |\n| [anyio](https://github.com/agronholm/anyio) | `4.8.0` | `4.11.0` |\n| [argon2-cffi](https://github.com/hynek/argon2-cffi) | `23.1.0` | `25.1.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.1` | `0.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.10.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.4` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.1` | `46.0.3` |\n| [cssbeautifier](https://github.com/beautifier/js-beautify) | `1.15.1` | `1.15.4` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [editorconfig](https://github.com/editorconfig/editorconfig-core-py) | `0.17.0` | `0.17.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.20.0` |\n| [findpython](https://github.com/frostming/findpython) | `0.6.2` | `0.7.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2024.12.0` | `2025.10.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.1.1` | `3.2.4` |\n| [httptools](https://github.com/MagicStack/httptools) | `0.6.4` | `0.7.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.1.0` | `4.3.0` |\n| [jeepney](https://gitlab.com/takluyver/jeepney) | `0.8.0` | `0.9.0` |\n| [jsbeautifier](https://github.com/ghost6991/Jsbeautifier) | `1.15.1` | `1.15.4` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.10.0` | `0.12.1` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.8` | `1.3.10` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.5.0` | `10.8.0` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.0` | `1.1.2` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.2.12` | `2025.10.31` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.12.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.1` | `0.4.1` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.21.0` | `3.23.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.11.0` | `3.14.3` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.11.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [secretstorage](https://github.com/mitya57/secretstorage) | `3.3.3` | `3.4.0` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.1.6.15` | `2025.9.11.17` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [validators](https://github.com/python-validators/validators) | `0.34.0` | `0.35.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.3` | `1.1.1` |\n| [websockets](https://github.com/python-websockets/websockets) | `14.1` | `15.0.1` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.0` | `2.0.0` |\n| [xattr](https://github.com/xattr/xattr) | `1.1.4` | `1.3.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.18.3` | `1.22.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n\n\nUpdates `alembic` from 1.16.5 to 1.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.17.1\u003c/h1\u003e\n\u003cp\u003eReleased: October 28, 2025\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added \u003ccode\u003ecommand.current.check_heads\u003c/code\u003e parameter to\n\u003ccode\u003ecommand.current()\u003c/code\u003e command, available from the command line via the\n\u003ccode\u003e--check-heads\u003c/code\u003e option to \u003ccode\u003ealembic current\u003c/code\u003e.  This tests if all head\nrevisions are applied to the database and raises \u003ccode\u003eDatabaseNotAtHead\u003c/code\u003e\n(or from the command line, exits with a non-zero exit code) if this is not\nthe case.  The parameter operates equvialently to the cookbook recipe\n\u003ccode\u003ecookbook_check_heads\u003c/code\u003e. Pull request courtesy Stefan Scherfke.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1705\"\u003e#1705\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [commands]\u003c/strong\u003e Disallow ':' character in custom revision identifiers. Previously, using a\ncolon in a revision ID (e.g., 'REV:1') would create the revision, however\nrevisions with colons in them are not correctly interpreted by other\ncommands, as it overlaps with the revision range syntax.   Pull request\ncourtesy Kim Wooseok with original implementation by Hrushikesh Patil.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1540\"\u003e#1540\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.17.0\u003c/h1\u003e\n\u003cp\u003eReleased: October 11, 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [tests]\u003c/strong\u003e The top-level test runner has been changed to use \u003ccode\u003enox\u003c/code\u003e, adding a\n\u003ccode\u003enoxfile.py\u003c/code\u003e as well as some included modules.   The \u003ccode\u003etox.ini\u003c/code\u003e file\nremains in place so that \u003ccode\u003etox\u003c/code\u003e runs will continue to function in the near\nterm, however it will be eventually removed and improvements and\nmaintenance going forward will be only towards \u003ccode\u003enoxfile.py\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [general]\u003c/strong\u003e The minimum Python version is now 3.10, as Python 3.9 is EOL.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.9 to 2.12.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided to emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \u003ccode\u003eFieldInfo\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/12411\"\u003e#12411\u003c/a\u003e.\nThis also adds back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still \u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.2 2025-10-14\u003c/h2\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.1 2025-10-13\u003c/h2\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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-core/pull/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.12 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported\n\u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided\nto emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \u003ccode\u003eFieldInfo\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/12411\"\u003e#12411\u003c/a\u003e.\nThis also add back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still\n\u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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-core/pull/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/commit/1a8850d101e67d2744ba8c6286e1172d7cd89d0b\"\u003e\u003ccode\u003e1a8850d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/09dbcf29c73c3fd7fd3ef1edfebe357e807cc9ca\"\u003e\u003ccode\u003e09dbcf2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e method, improve documentation around \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5da43310ec61a7b9b3017b2b9f388e778398a1bc\"\u003e\u003ccode\u003e5da4331\u003c/code\u003e\u003c/a\u003e Improve documentation about serialize as any behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9c863245ad3799ab331f33b52e2d7441e9c1191e\"\u003e\u003ccode\u003e9c86324\u003c/code\u003e\u003c/a\u003e Raise a warning when an invalid after model validator function signature is r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/36a73c6ed53df7f1cad3343bc811e1dd3f52d26f\"\u003e\u003ccode\u003e36a73c6\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003epydantic-extra-types\u003c/code\u003e dependency to version \u003ccode\u003e\u0026gt;=2.10.6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1e616a3a6fa0201f840c08143cac883e56a2d9df\"\u003e\u003ccode\u003e1e616a3\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc302e2d09f0eed14729f69bc61a258f1f35d35c\"\u003e\u003ccode\u003edc302e2\u003c/code\u003e\u003c/a\u003e Fix issue with recursive generic models with a parent model class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/6876485d0cffeb66c915695574344ae4b03645a7\"\u003e\u003ccode\u003e6876485\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b4076c66773b514d4891f036a4cc562b8ff0ff21\"\u003e\u003ccode\u003eb4076c6\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b67f07291167b4005a6eeee05fcad67b43a53f41\"\u003e\u003ccode\u003eb67f072\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.9...v2.12.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\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/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/3e664300f38a4ad1e1ff4b431147f18d63930028\"\u003e\u003ccode\u003e3e66430\u003c/code\u003e\u003c/a\u003e Prepare release 2.11.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/44fb5b7a97ed82d09d3895bee49b82ae4ac55fd9\"\u003e\u003ccode\u003e44fb5b7\u003c/code\u003e\u003c/a\u003e Update deps (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0497ef23314dbd63ea41d07ab9c301e628f2f9f9\"\u003e\u003ccode\u003e0497ef2\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c22cef44ff7d3ca058eee188bf1967650146fcda\"\u003e\u003ccode\u003ec22cef4\u003c/code\u003e\u003c/a\u003e Snake case conversion in Azure Key Vault (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9c6c9b55e27ab78e48eaa570965c6e52c32c9f38\"\u003e\u003ccode\u003e9c6c9b5\u003c/code\u003e\u003c/a\u003e Cli root model support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/677\"\u003e#677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/a164b73fcf8d802c1a7db7c6d9d830f11b70244e\"\u003e\u003ccode\u003ea164b73\u003c/code\u003e\u003c/a\u003e CLI Windows Path Fix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/d81f8d861d01eff563b8b91a1694d48b6eade92e\"\u003e\u003ccode\u003ed81f8d8\u003c/code\u003e\u003c/a\u003e Fix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/53ade971d122b9fef88da85a8ff489180e06c796\"\u003e\u003ccode\u003e53ade97\u003c/code\u003e\u003c/a\u003e Included endpoint_url kwarg in AWSSecretsManagerSettingsSource class (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1967d6f5c18db30ddbcffe4856ea941a71189abc\"\u003e\u003ccode\u003e1967d6f\u003c/code\u003e\u003c/a\u003e Warn if model_config sets unused keys for missing settings sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1fc20873d208979dfac0fa336f99fc05c0562ae8\"\u003e\u003ccode\u003e1fc2087\u003c/code\u003e\u003c/a\u003e Avoid env_prefix falling back to env vars without prefix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.36.0 to 0.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\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.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\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.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.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's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\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/3850ad6520cafb290bd4174fa9c4ca5d33440c82\"\u003e\u003ccode\u003e3850ad6\u003c/code\u003e\u003c/a\u003e Version 0.38.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b3f17a549ec96f57bf4d975145fc58feefdd4e8\"\u003e\u003ccode\u003e9b3f17a\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ce79f95d065c053b36449f67b3b2cefee5ecf167\"\u003e\u003ccode\u003ece79f95\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dbf8797b47c79da542f530f2143b8e851e2388fd\"\u003e\u003ccode\u003edbf8797\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2728\"\u003e#2728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/58f28be98eb95c8cf25905df10997b4af81c23e3\"\u003e\u003ccode\u003e58f28be\u003c/code\u003e\u003c/a\u003e Add section about event loop (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2725\"\u003e#2725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/93d95107490d5ea3693601388d7783c450058271\"\u003e\u003ccode\u003e93d9510\u003c/code\u003e\u003c/a\u003e Bump docs dependencies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b1c6c45ed7fe8bd485ddad475f0feff03971af7\"\u003e\u003ccode\u003e9b1c6c4\u003c/code\u003e\u003c/a\u003e Move Marcelo Trylesinski to maintainers in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/57a61d86f2f123b1d35b9ff71e0f29d22d10806f\"\u003e\u003ccode\u003e57a61d8\u003c/code\u003e\u003c/a\u003e Add discord to README (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2718\"\u003e#2718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ef5f9f5e7e79887b4ab4214c15ab5a9ce63e193\"\u003e\u003ccode\u003e7ef5f9f\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6d26d88970379cbf20b4dbf4f70e27f191db4ede\"\u003e\u003ccode\u003e6d26d88\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for PEP639 compliance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2713\"\u003e#2713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.38.0\"\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 `sqlalchemy` from 2.0.43 to 2.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `minio` from 7.2.16 to 7.2.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/minio/minio-py/releases\"\u003eminio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBugfix Release 7.2.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix ETag parsing in CompleteMultipartUploadResult by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1518\"\u003eminio/minio-py#1518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecredentials: set expiration using object.\u003cstrong\u003esetattr\u003c/strong\u003e() by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1516\"\u003eminio/minio-py#1516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecleanup: SSE-C keys fix a misleading error message by \u003ca href=\"https://github.com/marktheunissen\"\u003e\u003ccode\u003e@​marktheunissen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1514\"\u003eminio/minio-py#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add py.typed in setup.py by \u003ca href=\"https://github.com/tughril\"\u003e\u003ccode\u003e@​tughril\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1513\"\u003eminio/minio-py#1513\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/marktheunissen\"\u003e\u003ccode\u003e@​marktheunissen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1514\"\u003eminio/minio-py#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tughril\"\u003e\u003ccode\u003e@​tughril\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1513\"\u003eminio/minio-py#1513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/minio/minio-py/compare/7.2.17...7.2.18\"\u003ehttps://github.com/minio/minio-py/compare/7.2.17...7.2.18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugfix Release 7.2.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinioAdmin: allow specifying policies as dict besides file by \u003ca href=\"https://github.com/Alveel\"\u003e\u003ccode\u003e@​Alveel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1480\"\u003eminio/minio-py#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix too-many-positional-arguments error and other issues by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1504\"\u003eminio/minio-py#1504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCredentials: redact password in URL by \u003ca href=\"https://github.com/balamurugana\"\u003e\u003ccode\u003e@​balamurugana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/minio/minio-py/pull/1511\"\u003eminio/minio-py#1511\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/minio/minio-py/compare/7.2.16...7.2.17\"\u003ehttps://github.com/minio/minio-py/compare/7.2.16...7.2.17\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/ff647fe1fcb0ffb1ed190b6c6d1c8c958056508f\"\u003e\u003ccode\u003eff647fe\u003c/code\u003e\u003c/a\u003e feat: add py.typed in setup.py (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1513\"\u003e#1513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/ddb99190885a7b951339beec1ba5984c93be1341\"\u003e\u003ccode\u003eddb9919\u003c/code\u003e\u003c/a\u003e cleanup: SSE-C keys fix a misleading error message (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1514\"\u003e#1514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/ba1d03bb943de7065d5c712ccdee78d8a88b70bf\"\u003e\u003ccode\u003eba1d03b\u003c/code\u003e\u003c/a\u003e credentials: set expiration using object.\u003cstrong\u003esetattr\u003c/strong\u003e() (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1516\"\u003e#1516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/7c34d3c590740544fbf80fa153240a53043a3fca\"\u003e\u003ccode\u003e7c34d3c\u003c/code\u003e\u003c/a\u003e fix ETag parsing in CompleteMultipartUploadResult (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1518\"\u003e#1518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/4ecbbf3ec4398af1531ac0818fe00f7ad63b917f\"\u003e\u003ccode\u003e4ecbbf3\u003c/code\u003e\u003c/a\u003e Update version to next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/594ce03ac89fb19b1e60ea5b85172aa84c333ec1\"\u003e\u003ccode\u003e594ce03\u003c/code\u003e\u003c/a\u003e Credentials: redact password in URL (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1511\"\u003e#1511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/bb1a57ae2d8938c21f4922b8e75538bf9c68e9b6\"\u003e\u003ccode\u003ebb1a57a\u003c/code\u003e\u003c/a\u003e fix too-many-positional-arguments error and other issues (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1504\"\u003e#1504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/94b1193109c0ca8fa34f9319699e62c94ae269b2\"\u003e\u003ccode\u003e94b1193\u003c/code\u003e\u003c/a\u003e MinioAdmin: allow specifying policies as dict besides file (\u003ca href=\"https://redirect.github.com/minio/minio-py/issues/1480\"\u003e#1480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/minio/minio-py/commit/b7001538c7f6cd1277efbac450b9286d07806834\"\u003e\u003ccode\u003eb700153\u003c/code\u003e\u003c/a\u003e Update version to next release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/minio/minio-py/compare/7.2.16...7.2.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.11.0 — 2025-10-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9, declared support for Python 3.15 alpha.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-7:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/20ef00b4abc33a52ffcb10de4d3144e29dbea6a3\"\u003e\u003ccode\u003e20ef00b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5edf8ebf1f9754b32bad92d4826ed651614d9b94\"\u003e\u003ccode\u003e5edf8eb\u003c/code\u003e\u003c/a\u003e docs: prep for 7.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2c023ae7a1c50e375d20c31b0b8c693416ba92a5\"\u003e\u003ccode\u003e2c023ae\u003c/code\u003e\u003c/a\u003e build: 3.15 is supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2f1b95b0bd913397da3236155ca78e2117731247\"\u003e\u003ccode\u003e2f1b95b\u003c/code\u003e\u003c/a\u003e refactor: no need for _BaseCoverageException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/72b1bcc77e0062eefaf9d1da40c6b8c2ef0ec27e\"\u003e\u003ccode\u003e72b1bcc\u003c/code\u003e\u003c/a\u003e build: test light-threads on all versions of Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/16e93797527eada3417afc439fc4b28a432d6efc\"\u003e\u003ccode\u003e16e9379\u003c/code\u003e\u003c/a\u003e refactor: move core tests to their own file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bc8875db8f98439c046f4c141cb7aecdaa8d1f56\"\u003e\u003ccode\u003ebc8875d\u003c/code\u003e\u003c/a\u003e test: change a test to be in-process so metacov can capture its work\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/8e5d5b1bd53147e8618019191a062d2b86747355\"\u003e\u003ccode\u003e8e5d5b1\u003c/code\u003e\u003c/a\u003e build: tweak some version info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b0236dffef02f1aa219326b96230bdf26b9f5e6c\"\u003e\u003ccode\u003eb0236df\u003c/code\u003e\u003c/a\u003e test: more tests for core selection, and some refactoring of them\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/56edde623ae497c3638e608ef6803583c1db8720\"\u003e\u003ccode\u003e56edde6\u003c/code\u003e\u003c/a\u003e build: next version will be 7.11.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.7...7.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.1 to 0.14.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.3\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-10-30.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect \u003ccode\u003e--output-format\u003c/code\u003e with \u003ccode\u003e--watch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21097\"\u003e#21097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydoclint\u003c/code\u003e] Fix false positive on explicit exception re-raising (\u003ccode\u003eDOC501\u003c/code\u003e, \u003ccode\u003eDOC502\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21011\"\u003e#21011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Revert to stable behavior if imports for module lie in alternate branches for \u003ccode\u003eF401\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20878\"\u003e#20878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003estop-iteration-return\u003c/code\u003e (\u003ccode\u003ePLR1708\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20733\"\u003e#20733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add support for additional eager conversion patterns (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20657\"\u003e#20657\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix finding keyword range for clause header after statement ending with semicolon (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21067\"\u003e#21067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix syntax error false positive on nested alternative patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21104\"\u003e#21104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eISC001\u003c/code\u003e] Fix panic when string literals are unclosed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21034\"\u003e#21034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-django\u003c/code\u003e] Apply \u003ccode\u003eDJ001\u003c/code\u003e to annotated fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20907\"\u003e#20907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix \u003ccode\u003ePYI034\u003c/code\u003e to not trigger on metaclasses (\u003ccode\u003ePYI034\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20881\"\u003e#20881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Fix \u003ccode\u003eTC003\u003c/code\u003e false positive with \u003ccode\u003efuture-annotations\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21125\"\u003e#21125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix false positive for \u003ccode\u003e__class__\u003c/code\u003e in lambda expressions within class definitions (\u003ccode\u003eF821\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20564\"\u003e#20564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive for \u003ccode\u003eTypeVar\u003c/code\u003e with default on Python \u0026lt;3.13 (\u003ccode\u003eUP046\u003c/code\u003e,\u003ccode\u003eUP047\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21045\"\u003e#21045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing docstring sections to the numpy list (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20931\"\u003e#20931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Extend \u003ccode\u003eairflow.models..Param\u003c/code\u003e check (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21043\"\u003e#21043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Warn that \u003ccode\u003eairflow....DAG.create_dagrun\u003c/code\u003e has been removed (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21093\"\u003e#21093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Preserve digit separators in \u003ccode\u003eDecimal\u003c/code\u003e constructor (\u003ccode\u003eFURB157\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20588\"\u003e#20588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid sending an unnecessary \u0026quot;clear diagnostics\u0026quot; message for clients supporting pull diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21105\"\u003e#21105\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix correct example for \u003ccode\u003eS308\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21128\"\u003e#21128\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClearer error message when \u003ccode\u003eline-length\u003c/code\u003e goes beyond threshold (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21072\"\u003e#21072\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/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jvacek\"\u003e\u003ccode\u003e@​jvacek\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.3\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-10-30.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect \u003ccode\u003e--output-format\u003c/code\u003e with \u003ccode\u003e--watch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21097\"\u003e#21097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydoclint\u003c/code\u003e] Fix false positive on explicit exception re-raising (\u003ccode\u003eDOC501\u003c/code\u003e, \u003ccode\u003eDOC502\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21011\"\u003e#21011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Revert to stable behavior if imports for module lie in alternate branches for \u003ccode\u003eF401\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20878\"\u003e#20878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003estop-iteration-return\u003c/code\u003e (\u003ccode\u003ePLR1708\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20733\"\u003e#20733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add support for additional eager conversion patterns (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20657\"\u003e#20657\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix finding keyword range for clause header after statement ending with semicolon (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21067\"\u003e#21067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix syntax error false positive on nested alternative patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21104\"\u003e#21104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eISC001\u003c/code\u003e] Fix panic when string literals are unclosed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21034\"\u003e#21034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-django\u003c/code\u003e] Apply \u003ccode\u003eDJ001\u003c/code\u003e to annotated fields (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20907\"\u003e#20907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix \u003ccode\u003ePYI034\u003c/code\u003e to not trigger on metaclasses (\u003ccode\u003ePYI034\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20881\"\u003e#20881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Fix \u003ccode\u003eTC003\u003c/code\u003e false positive with \u003ccode\u003efuture-annotations\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21125\"\u003e#21125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix false positive for \u003ccode\u003e__class__\u003c/code\u003e in lambda expressions within class definitions (\u003ccode\u003eF821\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20564\"\u003e#20564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive for \u003ccode\u003eTypeVar\u003c/code\u003e with default on Python \u0026lt;3.13 (\u003ccode\u003eUP046\u003c/code\u003e,\u003ccode\u003eUP047\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21045\"\u003e#21045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing docstring sections to the numpy list (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20931\"\u003e#20931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Extend \u003ccode\u003eairflow.models..Param\u003c/code\u003e check (\u003ccode\u003eAIR311\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21043\"\u003e#21043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Warn that \u003ccode\u003eairflow....DAG.create_dagrun\u003c/code\u003e has been removed (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21093\"\u003e#21093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Preserve digit separators in \u003ccode\u003eDecimal\u003c/code\u003e constructor (\u003ccode\u003eFURB157\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20588\"\u003e#20588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid sending an unnecessary \u0026quot;clear diagnostics\u0026quot; message for clients supporting pull diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21105\"\u003e#21105\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix correct example for \u003ccode\u003eS308\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21128\"\u003e#21128\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClearer error message when \u003ccode\u003eline-length\u003c/code\u003e goes beyond threshold (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21072\"\u003e#21072\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/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jvacek\"\u003e\u003ccode\u003e@​jvacek\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prakhar1144\"\u003e\u003ccode\u003e@​prakhar1144\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8737a2d5f5138d855ef4b3ff6982bd7684324eab\"\u003e\u003ccode\u003e8737a2d\u003c/code\u003e\u003c/a\u003e Bump v0.14.3 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21152\"\u003e#21152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3be3a10a2fc6ddaafc13d1f5bca566282285be5f\"\u003e\u003ccode\u003e3be3a10\u003c/code\u003e\u003c/a\u003e [ty] Don't provide completions when in class or function definition (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21146\"\u003e#21146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/13375d0e42bcf7e4dac346d8fad991b97222371d\"\u003e\u003ccode\u003e13375d0\u003c/code\u003e\u003c/a\u003e [ty] Use the top materialization of classes for narrowing in class-patterns f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c0b04d4b7cfd725a9ca1b92b8bc4d93a63c56c59\"\u003e\u003ccode\u003ec0b04d4\u003c/code\u003e\u003c/a\u003e [ty] Update \u0026quot;constraint implication\u0026quot; relation to work on constraints between ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1c7ea690a820deaa0e17ecf72593ebc4781f3752\"\u003e\u003ccode\u003e1c7ea69\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Fix \u003ccode\u003eTC003\u003c/code\u003e false positive with \u003ccode\u003efuture-annotations\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9bacd19c5a44594f44be1b0dcebd7ccf1777e633\"\u003e\u003ccode\u003e9bacd19\u003c/code\u003e\u003c/a\u003e [ty] Fix lookup of \u003ccode\u003e__new__\u003c/code\u003e on instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21147\"\u003e#21147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f0fe6d62fb6711d963c64f60b5dc8a558ffb4551\"\u003e\u003ccode\u003ef0fe6d6\u003c/code\u003e\u003c/a\u003e Fix syntax error false positive on nested alternative patterns (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21104\"\u003e#21104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10bda3df00679c6808d8593470fe693ea8c9ae8f\"\u003e\u003ccode\u003e10bda3d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive for \u003ccode\u003eTypeVar\u003c/code\u003e with default on Python \u0026lt;3.13 (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e55bc943e5f8708aeaced34488ca5d790c388cee\"\u003e\u003ccode\u003ee55bc94\u003c/code\u003e\u003c/a\u003e [ty] Reachability and narrowing for enum methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21130\"\u003e#21130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1b0ee4677e216562033f8a2f9b006738734cb2b9\"\u003e\u003ccode\u003e1b0ee46\u003c/code\u003e\u003c/a\u003e [ty] Use \u003ccode\u003erange\u003c/code\u003e instead of custom \u003ccode\u003eIntIterable\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21138\"\u003e#21138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.1...0.14.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyright` from 1.1.405 to 1.1.407\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/53e8efb4638daca6c541d18ad35dafb0e5d9f34d\"\u003e\u003ccode\u003e53e8efb\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.407 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RobertCraigie/pyright-python/commit/1d515b71299f9dc4c066ce37e673d93bda4bc2df\"\u003e\u003ccode\u003e1d515b7\u003c/code\u003e\u003c/a\u003e Pyright NPM Package update to 1.1.406 (\u003ca href=\"https://redirect.github.com/RobertCraigie/pyright-python/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/RobertCraigie/pyright-python/compare/v1.1.405...v1.1.407\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.8.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSoc...\n\n_Description has been truncated_","html_url":"https://github.com/MinBZK/amt/pull/615","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MinBZK%2Famt/issues/615","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/615/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-11-01T05:05:25.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"3577239934","node_id":"PR_kwDOGE74Bs6w85XI","number":29,"state":"open","title":"chore(deps): bump the production-dependencies group with 12 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":"2025-11-01T05:05:25.000Z","updated_at":"2025-11-01T05:05:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":12,"packages":[{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"dulwich","old_version":"0.22.7","new_version":"0.22.8","repository_url":"https://github.com/dulwich/dulwich"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pkginfo","old_version":"1.12.0","new_version":"1.12.1.2"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"trove-classifiers","old_version":"2025.1.15.22","new_version":"2025.9.11.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"virtualenv","old_version":"20.29.2","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"xattr","old_version":"1.1.4","new_version":"1.3.0","repository_url":"https://github.com/xattr/xattr"},{"name":"findpython","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/frostming/findpython"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 12 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `0.22.7` | `0.22.8` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [pkginfo](https://code.launchpad.net/~tseaver/pkginfo/trunk) | `1.12.0` | `1.12.1.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.1.15.22` | `2025.9.11.17` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.29.2` | `20.35.4` |\n| [xattr](https://github.com/xattr/xattr) | `1.1.4` | `1.3.0` |\n| [findpython](https://github.com/frostming/findpython) | `0.6.2` | `0.6.3` |\n\nUpdates `build` from 1.2.2.post1 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/891\"\u003e#891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+ (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/871\"\u003e#871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/872\"\u003e#872\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/738\"\u003e#738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/911\"\u003e#911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/824\"\u003e#824\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/918\"\u003e#918\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/870\"\u003e#870\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/915\"\u003e#915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/862\"\u003e#862\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/863\"\u003e#863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/899\"\u003e#899\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/896\"\u003e#896\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/842\"\u003e#842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/816\"\u003e#816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.0 (2025-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e\n(PR :pr:\u003ccode\u003e916\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8\n(PR :pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+\n(PR :pr:\u003ccode\u003e895\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed\n(PR :pr:\u003ccode\u003e898\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip\n(PR :pr:\u003ccode\u003e861\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn\n(PR :pr:\u003ccode\u003e892\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster\n(PR :pr:\u003ccode\u003e871\u003c/code\u003e, :pr:\u003ccode\u003e872\u003c/code\u003e, :pr:\u003ccode\u003e738\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv\n(PR :pr:\u003ccode\u003e911\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests\n(PR :pr:\u003ccode\u003e824\u003c/code\u003e, :pr:\u003ccode\u003e918\u003c/code\u003e, :pr:\u003ccode\u003e870\u003c/code\u003e, :pr:\u003ccode\u003e915\u003c/code\u003e, :pr:\u003ccode\u003e862\u003c/code\u003e, :pr:\u003ccode\u003e863\u003c/code\u003e, :pr:\u003ccode\u003e899\u003c/code\u003e, :pr:\u003ccode\u003e896\u003c/code\u003e, :pr:\u003ccode\u003e854\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata\n(PR :pr:\u003ccode\u003e914\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development\n(PR :pr:\u003ccode\u003e880\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs\n(PR :pr:\u003ccode\u003e842\u003c/code\u003e, :pr:\u003ccode\u003e816\u003c/code\u003e, :pr:\u003ccode\u003e917\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.2 (2024-09-06)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.1 (2024-03-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR :pr:\u003ccode\u003e761\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/pypa/build/commit/60e8752f69178d2b2c3563e9c8fa17aa6e11b12c\"\u003e\u003ccode\u003e60e8752\u003c/code\u003e\u003c/a\u003e chore: bump to 1.3.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/807cfba618bc4f7b13e938ffa395fffd82494383\"\u003e\u003ccode\u003e807cfba\u003c/code\u003e\u003c/a\u003e feat: add --config-json (\u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bf54ad04ffe30e7f7847ea0bcbc081b550830950\"\u003e\u003ccode\u003ebf54ad0\u003c/code\u003e\u003c/a\u003e tests: fix issues with ignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/53852df8d84d1d17afaa851d4e1cc3754676bb29\"\u003e\u003ccode\u003e53852df\u003c/code\u003e\u003c/a\u003e docs: uv example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/b983371befe0547b312aba36083b859d923d9bfc\"\u003e\u003ccode\u003eb983371\u003c/code\u003e\u003c/a\u003e tests: optional virtualenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/6cd157ad0b614a76a13374032a4f56b65048c0be\"\u003e\u003ccode\u003e6cd157a\u003c/code\u003e\u003c/a\u003e Adopt PEP 639 \u0026quot;license\u0026quot; field (\u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bdaea367438b8e5ed3c26a7497eafc007084fbec\"\u003e\u003ccode\u003ebdaea36\u003c/code\u003e\u003c/a\u003e tests: fixes for errors in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/14d6508679e2ddb4a511b4b41e972cb374e9dadb\"\u003e\u003ccode\u003e14d6508\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/59ac60e78e0dc5164355bd29eb99fb1cb2d7a59c\"\u003e\u003ccode\u003e59ac60e\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/48ebd63cd7049dff737093c462970262ae1ceed0\"\u003e\u003ccode\u003e48ebd63\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.2.2.post1...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dulwich` from 0.22.7 to 0.22.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dulwich/dulwich/releases\"\u003edulwich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edulwich-0.22.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump ruff from 0.8.3 to 0.8.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1469\"\u003ejelmer/dulwich#1469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy to 1.14.0 by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1470\"\u003ejelmer/dulwich#1470\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.8.4 to 0.8.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1475\"\u003ejelmer/dulwich#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy from 1.14.0 to 1.14.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1474\"\u003ejelmer/dulwich#1474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auto-merge for dependabot by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1476\"\u003ejelmer/dulwich#1476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.23.3 to 0.23.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1478\"\u003ejelmer/dulwich#1478\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff to 0.9.1 by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1480\"\u003ejelmer/dulwich#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.9.1 to 0.9.2 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1481\"\u003ejelmer/dulwich#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eporcelain: respect 'abbrev' argument when describing annotated-tagless repositories by \u003ca href=\"https://github.com/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1482\"\u003ejelmer/dulwich#1482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff 0.9.3 by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1486\"\u003ejelmer/dulwich#1486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide gpgme-config on Ubuntu by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1487\"\u003ejelmer/dulwich#1487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.9.3 to 0.9.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1489\"\u003ejelmer/dulwich#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.9.4 to 0.9.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1491\"\u003ejelmer/dulwich#1491\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mypy by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1493\"\u003ejelmer/dulwich#1493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocstrings for constructors of repo.Repo and repo.MemoryRepo by \u003ca href=\"https://github.com/marnanel\"\u003e\u003ccode\u003e@​marnanel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1490\"\u003ejelmer/dulwich#1490\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd support for the git option \u0026quot;index.skipHash\u0026quot; by \u003ca href=\"https://github.com/rggjan\"\u003e\u003ccode\u003e@​rggjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1488\"\u003ejelmer/dulwich#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip-worktree support, sparse checkout impl by \u003ca href=\"https://github.com/lmmx\"\u003e\u003ccode\u003e@​lmmx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1495\"\u003ejelmer/dulwich#1495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd default values for IndexEntry by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1496\"\u003ejelmer/dulwich#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ruff from 0.9.6 to 0.9.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1498\"\u003ejelmer/dulwich#1498\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow passing in plain strings to tag_create by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1500\"\u003ejelmer/dulwich#1500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(cone-mode): sparse checkout cone mode support by \u003ca href=\"https://github.com/lmmx\"\u003e\u003ccode\u003e@​lmmx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1497\"\u003ejelmer/dulwich#1497\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note on comparison with other Git libraries by \u003ca href=\"https://github.com/jelmer\"\u003e\u003ccode\u003e@​jelmer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1501\"\u003ejelmer/dulwich#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/rggjan\"\u003e\u003ccode\u003e@​rggjan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1488\"\u003ejelmer/dulwich#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lmmx\"\u003e\u003ccode\u003e@​lmmx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jelmer/dulwich/pull/1495\"\u003ejelmer/dulwich#1495\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jelmer/dulwich/compare/dulwich-0.22.7...dulwich-0.22.8\"\u003ehttps://github.com/jelmer/dulwich/compare/dulwich-0.22.7...dulwich-0.22.8\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jelmer/dulwich/blob/master/NEWS\"\u003edulwich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.22.8\t2025-03-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow passing in plain strings to \u003ccode\u003edulwich.porcelain.tag_create\u003c/code\u003e\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1499\"\u003e#1499\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBump PyO3 to 0.23.5. (Jelmer Vernooĳ)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd sparse checkout cone mode support (Louis Maddox, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1497\"\u003e#1497\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd skip-worktree support. (Louis Maddox)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u0026quot;index.skipHash\u0026quot; option support. (Jan Rűegg)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRepo docstring improvements. (Marnanel Thurman)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/7a70242ca0b43184623c09549478cfec63a4d20c\"\u003e\u003ccode\u003e7a70242\u003c/code\u003e\u003c/a\u003e Release 0.22.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/ae69f1c9a4229206b6b6d871e67537732f45ac01\"\u003e\u003ccode\u003eae69f1c\u003c/code\u003e\u003c/a\u003e Update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/00875b355cf9f7639f248306b6dc9f8566fbbe72\"\u003e\u003ccode\u003e00875b3\u003c/code\u003e\u003c/a\u003e Add note on comparison with other Git libraries (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1501\"\u003e#1501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/f14adb80d07a00c18fa804e0635822d23f567471\"\u003e\u003ccode\u003ef14adb8\u003c/code\u003e\u003c/a\u003e Update pyo3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6563339f4b67b9ffabf737864f9cd753b5a4d48a\"\u003e\u003ccode\u003e6563339\u003c/code\u003e\u003c/a\u003e Fix formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/5b6a3e251d8b124bb9c6db210d7fc54d54681408\"\u003e\u003ccode\u003e5b6a3e2\u003c/code\u003e\u003c/a\u003e Add note about difference with other Git libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/94b6f838a3f711a159e8f9c9f62f960097e6ccf9\"\u003e\u003ccode\u003e94b6f83\u003c/code\u003e\u003c/a\u003e Add more typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/081d6b4c72cf70396ac49736991c8bbff2df299b\"\u003e\u003ccode\u003e081d6b4\u003c/code\u003e\u003c/a\u003e feat(cone-mode): sparse checkout cone mode support (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1497\"\u003e#1497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/9fd24eb629be20ea05012751df787f95a1fcf7ca\"\u003e\u003ccode\u003e9fd24eb\u003c/code\u003e\u003c/a\u003e Allow passing in plain strings to tag_create (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1500\"\u003e#1500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/797731f9602247d54ecfb168e480f93a07010d35\"\u003e\u003ccode\u003e797731f\u003c/code\u003e\u003c/a\u003e Fix typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dulwich/dulwich/compare/dulwich-0.22.7...dulwich-0.22.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastjsonschema` from 2.21.1 to 2.21.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 24.2 to 25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-add a test for Unicode file name parsing by \u003ca href=\"https://github.com/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to ruff 0.9.1 by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/865\"\u003epypa/packaging#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 738 Android tags by \u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(markers): support 'extras' and 'dependency_groups' markers by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\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/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/24.2...25.0\"\u003ehttps://github.com/pypa/packaging/compare/24.2...25.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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e25.0 - 2025-04-19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* PEP 751: Add support for ``extras`` and ``dependency_groups`` markers. (:issue:`885`)\n* PEP 738: Add support for Android platform tags. (:issue:`880`)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f58537628042c7f29780b9d33f31597e7fc9d664\"\u003e\u003ccode\u003ef585376\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/600ecea15b2388037b8dc94883504ca612947576\"\u003e\u003ccode\u003e600ecea\u003c/code\u003e\u003c/a\u003e Add changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3910129009b25dd1aa1fe32e644bc891188c56fe\"\u003e\u003ccode\u003e3910129\u003c/code\u003e\u003c/a\u003e support 'extras' and 'dependency_groups' markers (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8e49b4373731bffb110c9583e64ad802cb67c7ea\"\u003e\u003ccode\u003e8e49b43\u003c/code\u003e\u003c/a\u003e Add support for PEP 738 Android tags (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/e624d8edfaa28865de7b5a7da8bd59fd410e5331\"\u003e\u003ccode\u003ee624d8e\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/71f38d872a6e88b28da9d1b270f8512475bc90d4\"\u003e\u003ccode\u003e71f38d8\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9b4922dd3c26c8522d716bec79d7e0ed408631c1\"\u003e\u003ccode\u003e9b4922d\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8510bd9d3bab5571974202ec85f6ef7b0359bfaf\"\u003e\u003ccode\u003e8510bd9\u003c/code\u003e\u003c/a\u003e Upgrade to ruff 0.9.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/865\"\u003e#865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9375ec2eff48257967c97d331b9a76019e95bdb0\"\u003e\u003ccode\u003e9375ec2\u003c/code\u003e\u003c/a\u003e Re-add tests for Unicode file name parsing (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2256ed4ac261309a09daa04cc801abd7cff2e6f0\"\u003e\u003ccode\u003e2256ed4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/24.2...25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pkginfo` from 1.12.0 to 1.12.1.2\n\nUpdates `platformdirs` from 4.3.6 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve homebrew path detection by \u003ca href=\"https://github.com/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\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/daeho-ro\"\u003e\u003ccode\u003e@​daeho-ro\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/370\"\u003etox-dev/platformdirs#370\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\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/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c945a28a2cd2ae34154540d144e7671ed80b1c10\"\u003e\u003ccode\u003ec945a28\u003c/code\u003e\u003c/a\u003e feat: improve homebrew path detection (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9f616e954ee35621a75843fa40180cbd6fea2670\"\u003e\u003ccode\u003e9f616e9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5720f26595056e11516d1167185ffde135e0aa55\"\u003e\u003ccode\u003e5720f26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/848924dfbec662829225a4a1108e1a818539304a\"\u003e\u003ccode\u003e848924d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/df2e678930d48ac0cb0b019da78a069dfbeae579\"\u003e\u003ccode\u003edf2e678\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/009a3f81879f356a7af0923c2ba443756b552e1c\"\u003e\u003ccode\u003e009a3f8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/3d194ee7ef7ce2a021a2b5fbf77bbddd171ca9a1\"\u003e\u003ccode\u003e3d194ee\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6046533d719a8871f5f8fc4fc99c01a14b282853\"\u003e\u003ccode\u003e6046533\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/88389cef8fce1da42858a621770ce4dee8f739f9\"\u003e\u003ccode\u003e88389ce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/82763ff0c244c7ca7b4eaa4b4336be224b385389\"\u003e\u003ccode\u003e82763ff\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.4.0\"\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.32.5\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.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomlkit` from 0.13.2 to 0.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sdispater/tomlkit/releases\"\u003etomlkit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: register encoder's doc incorrectly mentions TypeError by \u003ca href=\"https://github.com/mathieu-lemay\"\u003e\u003ccode\u003e@​mathieu-lemay\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/384\"\u003epython-poetry/tomlkit#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/380\"\u003epython-poetry/tomlkit#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump virtualenv from 20.26.1 to 20.26.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/394\"\u003epython-poetry/tomlkit#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump jinja2 from 3.1.4 to 3.1.5 in /docs by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/388\"\u003epython-poetry/tomlkit#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/386\"\u003epython-poetry/tomlkit#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump jinja2 from 3.1.4 to 3.1.5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/395\"\u003epython-poetry/tomlkit#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/396\"\u003epython-poetry/tomlkit#396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add .item() method to retrieve the item object by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/397\"\u003epython-poetry/tomlkit#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Inconsistent newlines on Windows by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/402\"\u003epython-poetry/tomlkit#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace pytest's legacy \u003ccode\u003etmpdir\u003c/code\u003e fixture with \u003ccode\u003etmp_path\u003c/code\u003e by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/403\"\u003epython-poetry/tomlkit#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/404\"\u003epython-poetry/tomlkit#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent repeated whitespace items in arrays by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/406\"\u003epython-poetry/tomlkit#406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAot \u003cstrong\u003esetitem\u003c/strong\u003e not implemented fix by \u003ca href=\"https://github.com/Annakan\"\u003e\u003ccode\u003e@​Annakan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/413\"\u003epython-poetry/tomlkit#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/398\"\u003epython-poetry/tomlkit#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix removal of items from \u003ccode\u003eArray\u003c/code\u003es by \u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/409\"\u003epython-poetry/tomlkit#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: reject single keys that aren't strings by \u003ca href=\"https://github.com/savente93\"\u003e\u003ccode\u003e@​savente93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/416\"\u003epython-poetry/tomlkit#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/415\"\u003epython-poetry/tomlkit#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Invalid serialization when overwriting out-of-order table key by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/417\"\u003epython-poetry/tomlkit#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Dumping a subelement of a parsed toml fails starting on 4rd level of nesting by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/419\"\u003epython-poetry/tomlkit#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump jinja2 from 3.1.5 to 3.1.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/418\"\u003epython-poetry/tomlkit#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: ensure unique table indices when adding items to out-of-order tables by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/420\"\u003epython-poetry/tomlkit#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add newline indentation after existing items in Container class by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/421\"\u003epython-poetry/tomlkit#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Missing newline at end of file with multiple array of tables can corrupt during dumping by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/422\"\u003epython-poetry/tomlkit#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update version to 0.13.3 by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/423\"\u003epython-poetry/tomlkit#423\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/mathieu-lemay\"\u003e\u003ccode\u003e@​mathieu-lemay\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/384\"\u003epython-poetry/tomlkit#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimmaDont\"\u003e\u003ccode\u003e@​DimmaDont\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/402\"\u003epython-poetry/tomlkit#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Annakan\"\u003e\u003ccode\u003e@​Annakan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/413\"\u003epython-poetry/tomlkit#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/savente93\"\u003e\u003ccode\u003e@​savente93\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/pull/416\"\u003epython-poetry/tomlkit#416\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-poetry/tomlkit/compare/0.13.2...0.13.3\"\u003ehttps://github.com/python-poetry/tomlkit/compare/0.13.2...0.13.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/python-poetry/tomlkit/blob/master/CHANGELOG.md\"\u003etomlkit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.13.3] - 2025-06-05\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e.item()\u003c/code\u003e method to array and tables to retrieve an item by key. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix missing newline when parsing a separated array of tables without trailing new line. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix non-existing key error when deleting an item from an out-of-order table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure newline is added between the plain values and the first table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix repeated whitespace when removing an array item. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid serialization after removing array item if the comma is on its own line. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix serialization of a nested dotted key table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefine the error message when use non-string as single key. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/412\"\u003e#412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix invalid serialization after overwriting a key of a out-of-order table. (\u003ca href=\"https://redirect.github.com/python-poetry/tomlkit/issues/414\"\u003e#414\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/8c963db32784623f8fc076ad4ef9b6b01ab0d542\"\u003e\u003ccode\u003e8c963db\u003c/code\u003e\u003c/a\u003e chore: update version to 0.13.3 (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/423\"\u003e#423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/fcb82ae1d9bd531e6c7c4a1f7fd6ddea5e41cf7b\"\u003e\u003ccode\u003efcb82ae\u003c/code\u003e\u003c/a\u003e fix: Missing newline at end of file with multiple array of tables can corrupt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/d4e1ecda48c6b8ae772a46af07d2cb5781d7f2bd\"\u003e\u003ccode\u003ed4e1ecd\u003c/code\u003e\u003c/a\u003e fix: add newline indentation after existing items in Container class (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/e3b7332de2b5bd7acf56883630a50de65c6b57ce\"\u003e\u003ccode\u003ee3b7332\u003c/code\u003e\u003c/a\u003e fix: ensure unique table indices when adding items to out-of-order tables (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/14607a516ed3594bac67f7c520d2fb2430a6ab21\"\u003e\u003ccode\u003e14607a5\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump jinja2 from 3.1.5 to 3.1.6 (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/bd31dbd8e2762c88af534ac72cb5c48644d3b4af\"\u003e\u003ccode\u003ebd31dbd\u003c/code\u003e\u003c/a\u003e fix: Dumping a subelement of a parsed toml fails starting on 4rd level of nes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/62a67082374af1c34944aecf917d5fa454a09cd3\"\u003e\u003ccode\u003e62a6708\u003c/code\u003e\u003c/a\u003e fix: Invalid serialization when overwriting out-of-order table key (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/64064f30bed25c2559ab3e6310cf49323355b3bc\"\u003e\u003ccode\u003e64064f3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/df4afc67ac465be42c05621f14306a0befb37104\"\u003e\u003ccode\u003edf4afc6\u003c/code\u003e\u003c/a\u003e Fix: reject single keys that aren't strings (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-poetry/tomlkit/commit/832e85579ea9029aae53ebbb1812c537abf9dd03\"\u003e\u003ccode\u003e832e855\u003c/code\u003e\u003c/a\u003e Fix array item removal (\u003ca href=\"https://redirect.github.com/sdispater/tomlkit/issues/409\"\u003e#409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sdispater/tomlkit/compare/0.13.2...0.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2025.1.15.22 to 2025.9.11.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/48c3b326d7b8330c92b168262a4d8f36aef1af43\"\u003e\u003ccode\u003e48c3b32\u003c/code\u003e\u003c/a\u003e Add support for Odoo 19.0 in classifiers (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/8bec1977fa18177599f61e8ad8bfc93ec41db1c6\"\u003e\u003ccode\u003e8bec197\u003c/code\u003e\u003c/a\u003e Add classifier: Framework InvenTree (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/223\"\u003e#223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/dc39dbfdf6cc79b7422d8b1bf449b1aeae9a2ab7\"\u003e\u003ccode\u003edc39dbf\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e\u0026quot;Programming Language :: Zig\u0026quot;\u003c/code\u003e classifier (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/1419a1791e89d9755f7ed054b21833cc80f70f32\"\u003e\u003ccode\u003e1419a17\u003c/code\u003e\u003c/a\u003e Add Django 6 classifiers to trove_classifiers (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/224\"\u003e#224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a764acf5d4862863a0afd2bee1ddbf4d72b73761\"\u003e\u003ccode\u003ea764acf\u003c/code\u003e\u003c/a\u003e Add classifier for CUDA 13 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/222\"\u003e#222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/b67299df973749f590c41d02329ccb9ca6af5054\"\u003e\u003ccode\u003eb67299d\u003c/code\u003e\u003c/a\u003e Add trove classifier for GraalPython (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/188\"\u003e#188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/331838aaea0eea6374e4e51e8fe05e13bf7e4957\"\u003e\u003ccode\u003e331838a\u003c/code\u003e\u003c/a\u003e feat: add free-threading classifiers (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/00f84964bf172aa9274343291073136a1256abab\"\u003e\u003ccode\u003e00f8496\u003c/code\u003e\u003c/a\u003e Fix python usage in makefile (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/fca1f10d735d84c3cdb5dfc409959d3cb8ed2e1c\"\u003e\u003ccode\u003efca1f10\u003c/code\u003e\u003c/a\u003e Add several missing languages (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/38454c06aca1acfc3acfcf9eb63c12f2979c4fc3\"\u003e\u003ccode\u003e38454c0\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.15 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2025.1.15.22...2025.9.11.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `virtualenv` from 20.29.2 to 20.35.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/releases\"\u003evirtualenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e20.35.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.3 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2981\"\u003epypa/virtualenv#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Prevent NameError when accessing _DISTUTILS_PATCH during file ov… by \u003ca href=\"https://github.com/gracetyy\"\u003e\u003ccode\u003e@​gracetyy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2982\"\u003epypa/virtualenv#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade pip and fix 3.15 picking old wheel by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2989\"\u003epypa/virtualenv#2989\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/gracetyy\"\u003e\u003ccode\u003e@​gracetyy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2982\"\u003epypa/virtualenv#2982\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.3...20.35.4\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.3...20.35.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2976\"\u003epypa/virtualenv#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert out effort to extract discovery by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2978\"\u003epypa/virtualenv#2978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 20.35.2 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2980\"\u003epypa/virtualenv#2980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_too_many_open_files fails by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2979\"\u003epypa/virtualenv#2979\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.1...20.35.3\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.1...20.35.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2976\"\u003epypa/virtualenv#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert out effort to extract discovery by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2978\"\u003epypa/virtualenv#2978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.1...20.35.2\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.1...20.35.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.34.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2954\"\u003epypa/virtualenv#2954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: Decouple discovery module by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2956\"\u003epypa/virtualenv#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ensure creation of python3.exe and python3 on Windows by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2957\"\u003epypa/virtualenv#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Use getattr for tcl/tk library paths by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2945\"\u003epypa/virtualenv#2945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Import fs_is_case_sensitive absolutely in py_info.py by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2960\"\u003epypa/virtualenv#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2970\"\u003epypa/virtualenv#2970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 20.35.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2971\"\u003epypa/virtualenv#2971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Patch get_interpreter to handle missing cache and app_data by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2974\"\u003epypa/virtualenv#2974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix backwards incompatible changes on PythonInfo by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2975\"\u003epypa/virtualenv#2975\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst\"\u003evirtualenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20.35.4 (2025-10-28)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix race condition in ``_virtualenv.py`` when file is overwritten during import, preventing ``NameError`` when ``_DISTUTILS_PATCH`` is accessed - by :user:`gracetyy`. (:issue:`2969`)\n- Upgrade embedded wheels:\n\u003cul\u003e\n\u003cli\u003epip to \u003ccode\u003e25.3\u003c/code\u003e from \u003ccode\u003e25.2\u003c/code\u003e (:issue:\u003ccode\u003e2989\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.35.3 (2025-10-10)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept RuntimeError in \u003ccode\u003etest_too_many_open_files\u003c/code\u003e, by :user:\u003ccode\u003eesafak\u003c/code\u003e (:issue:\u003ccode\u003e2935\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.35.2 (2025-10-10)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Revert out changes related to the extraction of the discovery module - by :user:`gaborbernat`. (:issue:`2978`)\n\u003ch2\u003ev20.35.1 (2025-10-09)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePatch get_interpreter to handle missing cache and app_data - by :user:\u003ccode\u003eesafak\u003c/code\u003e (:issue:\u003ccode\u003e2972\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix backwards incompatible changes to \u003ccode\u003ePythonInfo\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e2975\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.35.0 (2025-10-08)\u003c/h2\u003e\n\u003cp\u003eFeatures - 20.35.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Add AppData and Cache protocols to discovery for decoupling - by :user:`esafak`. (:issue:`2074`)\n- Ensure python3.exe and python3 on Windows for Python 3 - by :user:`esafak`. (:issue:`2774`)\n\u003cp\u003eBugfixes - 20.35.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced direct references to tcl/tk library paths with getattr - by :user:\u003ccode\u003eesafak\u003c/code\u003e (:issue:\u003ccode\u003e2944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestore absolute import of fs_is_case_sensitive - by :user:\u003ccode\u003eesafak\u003c/code\u003e. (:issue:\u003ccode\u003e2955\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.34.0 (2025-08-13)\u003c/h2\u003e\n\u003cp\u003eFeatures - 20.34.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/03815342726b1a8b33b55b5057bfd46b1d6b74c1\"\u003e\u003ccode\u003e0381534\u003c/code\u003e\u003c/a\u003e release 20.35.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/25207be3cecc22049cba1989ceee87dfed9a4d67\"\u003e\u003ccode\u003e25207be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2989\"\u003e#2989\u003c/a\u003e from gaborbernat/bump-pip\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/d593841e93c401bb230646d38de480ac4ac42da4\"\u003e\u003ccode\u003ed593841\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2984\"\u003e#2984\u003c/a\u003e from pypa/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/f742f8da0a3c313d617d41a0c44aac29d4e61edd\"\u003e\u003ccode\u003ef742f8d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/0a644b0b6e0c68e89584fbce8339b366cb4cdf91\"\u003e\u003ccode\u003e0a644b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2982\"\u003e#2982\u003c/a\u003e from gracetyy/fix/distutils_patch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/2b125eb79cd4764dac26df30d9bf7b661bd74100\"\u003e\u003ccode\u003e2b125eb\u003c/code\u003e\u003c/a\u003e refactor: fix last commit according to review feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/71d5e0929dca30a429a0144e0645a6b55d2851e5\"\u003e\u003ccode\u003e71d5e09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/fd0a8342a383c126608e005e9ff0a7612e53a219\"\u003e\u003ccode\u003efd0a834\u003c/code\u003e\u003c/a\u003e refactor: fix last commit according to review feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/c5e51d4e45dbca840dac5929fbb7ed145c81c1fd\"\u003e\u003ccode\u003ec5e51d4\u003c/code\u003e\u003c/a\u003e refactor: use pytest tmp_path fixture instead of tempfile.TemporaryDirectory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/629f7b836399aa90cfe29bbcbaac547d43181d45\"\u003e\u003ccode\u003e629f7b8\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix/distutils_patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.29.2...20.35.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `xattr` from 1.1.4 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xattr/xattr/releases\"\u003exattr's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml license identifier and update CI workflows for\nPython 3.14, dropping support for Python 3.8.\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/134\"\u003exattr/xattr#134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/xattr/xattr/compare/v1.2.0...v1.3.0\"\u003ehttps://github.com/xattr/xattr/compare/v1.2.0...v1.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eVersion 1.2.0 released 2025-07-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport optional default value in xattr.get()\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/130\"\u003exattr/xattr#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore macOS 13 SIP attribute 'com.apple.provenance' in tests\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/131\"\u003exattr/xattr#131\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/juanmirocks\"\u003e\u003ccode\u003e@​juanmirocks\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/xattr/xattr/pull/130\"\u003exattr/xattr#130\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/xattr/xattr/compare/v1.1.4...v1.2.0\"\u003ehttps://github.com/xattr/xattr/compare/v1.1.4...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xattr/xattr/blob/main/CHANGES.txt\"\u003exattr's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 1.3.0 released 2025-10-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml license identifier and update CI workflows for\nPython 3.14, dropping support for Python 3.8.\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/134\"\u003exattr/xattr#134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 1.2.0 released 2025-07-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport optional default value in xattr.get()\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/130\"\u003exattr/xattr#130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore macOS 13 SIP attribute 'com.apple.provenance' in tests\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/131\"\u003exattr/xattr#131\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 1.1.4 released 2025-01-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub actions to support upload-artifact@v4 (with the side-effect of\nbuilding wheels for Python v3.13)\n\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/123\"\u003exattr/xattr#123\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/124\"\u003exattr/xattr#124\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/125\"\u003exattr/xattr#125\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/126\"\u003exattr/xattr#126\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/127\"\u003exattr/xattr#127\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 1.1.0 released 2024-02-01\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove FreeBSD compatibility by stripping \u0026quot;user.\u0026quot; prefix on attribute\nnames, but add them when listing attributes so that it behaves similarly\nto Linux (the xattr.pyxattr_compat module does not add them).\nAlso adds FreeBSD with its ports build of Python 3.9 to the CI test suite.\n\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/116\"\u003exattr/xattr#116\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/117\"\u003exattr/xattr#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 1.0.0 released 2023-11-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate test \u0026amp; build matrix and use Github Actions as a Trusted Publisher.\nDrop support for Python 3.7 and earlier (including Python 2).\nMove tests out of package.\n\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/115\"\u003exattr/xattr#115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 0.10.1 released 2022-12-03\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate github actions\n\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/112\"\u003exattr/xattr#112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated README to add reference to osxmetadata\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/110\"\u003exattr/xattr#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 0.10.0 released 2022-10-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove exec flag from tool.py\n\u003ca href=\"https://redirect.github.com/xattr/xattr/pull/106\"\u003exattr/xattr#106\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/xattr/xattr/commit/29c9c064edb93ad4328c50c6da60a6330eb68297\"\u003e\u003ccode\u003e29c9c06\u003c/code\u003e\u003c/a\u003e Add date for v1.3.0 release (\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/135\"\u003e#135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/ef5c1c0ca2937b4716cd6aa5798b3a7218a08e11\"\u003e\u003ccode\u003eef5c1c0\u003c/code\u003e\u003c/a\u003e Update pyproject.toml license identifier and update CI workflows for Python 3...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/10ecf005bbbaca8b98f4d508964cd93a6a9d8254\"\u003e\u003ccode\u003e10ecf00\u003c/code\u003e\u003c/a\u003e update release date for v1.2.0 (\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/132\"\u003e#132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/482f12efae566cb314f80c771621d5a00e6dbfa0\"\u003e\u003ccode\u003e482f12e\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/xattr/xattr/issues/129\"\u003e#129\u003c/a\u003e support optional default value in xattr.get() (\u003ca href=\"https://redirect.github.com/xattr/xattr/issues/130\"\u003e#130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/1baefbf075fe802dfa6a9b0158fd1de1cfad4b0f\"\u003e\u003ccode\u003e1baefbf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/xattr/xattr/issues/131\"\u003e#131\u003c/a\u003e from xattr/macOS-sip\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xattr/xattr/commit/74471882a53f5955f17251188d70388c1394895c\"\u003e\u003ccode\u003e7447188\u003c/code\u003e\u003c/a\u003e Ignore macOS 13 SIP attribute 'com.apple.provenance' in tests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/xattr/xattr/compare/v1.1.4...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `findpython` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/frostming/findpython/releases\"\u003efindpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.6.3\u003c/h2\u003e\n\u003ch3\u003e   🐞 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefresh lockfile and fix deprecation warnings  -  by \u003ca href=\"https://github.com/Secrus\"\u003e\u003ccode\u003e@​Secrus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/frostming/findpython/issues/30\"\u003efrostming/findpython#30\u003c/a\u003e \u003ca href=\"https://github.com/frostming/findpython/commit/02116fe\"\u003e\u003c!-- raw HTML omitted --\u003e(02116)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer 64bit Python interpreters  -  by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/frostming/findpython/commit/cc5558b\"\u003e\u003c!-- raw HTML omitted --\u003e(cc555)\u003c!-- raw HTML omitted --\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5\u003e    \u003ca href=\"https://github.com/frostming/findpython/compare/0.6.2...0.6.3\"\u003eView changes on GitHub\u003c/a\u003e\u003c/h5\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming/findpython/commit/3ab7252d48aa650f92767cf51650423dc65708d0\"\u003e\u003ccode\u003e3ab7252\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:frostming/findpython\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming/findpython/commit/cc5558b1928a897aa77e57b7553b700c32400b3f\"\u003e\u003ccode\u003ecc5558b\u003c/code\u003e\u003c/a\u003e fix: prefer 64bit Python interpreters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming/findpython/commit/02116fecdbf351070c23539d30f720a97ce3a049\"\u003e\u003ccode\u003e02116fe\u003c/code\u003e\u003c/a\u003e fix: Refresh lockfile and fix deprecation warnings (\u003ca href=\"https://redirect.github.com/frostming/findpython/issues/30\"\u003e#30\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/frostming/findpython/compare/0.6.2...0.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` w...\n\n_Description has been truncated_","html_url":"https://github.com/yokomotod/poetry/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yokomotod%2Fpoetry/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"}},{"old_version":"~=2.17.1","new_version":"~=2.21.2","update_type":"minor","path":"/tests","pr_created_at":"2025-10-09T07:12:53.000Z","version_change":"~=2.17.1 → ~=2.21.2","issue":{"uuid":"3497919830","node_id":"PR_kwDOE9Q-D86s1MpL","number":184,"state":"open","title":"Update fastjsonschema requirement from ~=2.17.1 to ~=2.21.2 in /tests","user":"dependabot[bot]","labels":["dependencies","python","category: dependency_changes","Stale"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-09T07:12:53.000Z","updated_at":"2025-10-24T01:24:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"fastjsonschema","old_version":"~=2.17.1","new_version":"~=2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":"/tests","ecosystem":"pip"},"body":"Updates the requirements on [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.1 (2023-12-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed date format to accept only two digit months and days\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.0 (2023-11-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003euse_formats\u003c/code\u003e parameter to allow disable automatic assertions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.1 (2023-10-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazy import of urllib to improve import performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.0 (2023-07-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error message for required props - only missing are reported\u003c/li\u003e\n\u003cli\u003eFixed support of boolean schema in if-then-else application\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.1 (2023-05-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed tests in sdist\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.0 (2023-05-21)\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/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.17.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/isanghao/openvino/pull/184","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/isanghao%2Fopenvino/issues/184","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/184/packages"}},{"old_version":"~=2.17.1","new_version":"~=2.21.2","update_type":"minor","path":"/tests","pr_created_at":"2025-10-09T07:08:08.000Z","version_change":"~=2.17.1 → ~=2.21.2","issue":{"uuid":"3497907764","node_id":"PR_kwDOD_L0vs6s1KDw","number":184,"state":"closed","title":"Update fastjsonschema requirement from ~=2.17.1 to ~=2.21.2 in /tests","user":"dependabot[bot]","labels":["dependencies","python","category: dependency_changes","Stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2025-10-31T01:40:46.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-09T07:08:08.000Z","updated_at":"2025-10-31T01:40:54.000Z","time_to_close":1881158,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"fastjsonschema","old_version":"~=2.17.1","new_version":"~=2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":"/tests","ecosystem":"pip"},"body":"Updates the requirements on [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.1 (2023-12-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed date format to accept only two digit months and days\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.0 (2023-11-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003euse_formats\u003c/code\u003e parameter to allow disable automatic assertions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.1 (2023-10-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazy import of urllib to improve import performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.0 (2023-07-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error message for required props - only missing are reported\u003c/li\u003e\n\u003cli\u003eFixed support of boolean schema in if-then-else application\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.1 (2023-05-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed tests in sdist\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.0 (2023-05-21)\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/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.17.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/artanokhov/openvino/pull/184","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/artanokhov%2Fopenvino/issues/184","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/184/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-10-01T08:29:15.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2877343524","node_id":"PR_kwDOLUtxJc6rgMck","number":94,"state":"open","title":"Bump the poetry-dependencies group across 1 directory with 50 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-01T08:29:15.000Z","updated_at":"2025-10-01T08:29:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":50,"packages":[{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.2","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"furo","old_version":"2025.7.19","new_version":"2025.9.25","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.17.0","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pre-commit-hooks","old_version":"5.0.0","new_version":"6.0.0","repository_url":"https://github.com/pre-commit/pre-commit-hooks"},{"name":"ruff","old_version":"0.12.4","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"xdoctest","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/Erotemic/xdoctest"},{"name":"deptry","old_version":"0.23.0","new_version":"0.23.1","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"jupytext","old_version":"1.17.2","new_version":"1.17.3","repository_url":"https://github.com/mwouts/jupytext"},{"name":"ipykernel","old_version":"6.30.0","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"anyio","old_version":"4.9.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.2"},{"name":"certifi","old_version":"2025.7.14","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"debugpy","old_version":"1.8.15","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.12","new_version":"2.6.14","repository_url":"https://github.com/pre-commit/identify"},{"name":"jsonschema","old_version":"4.25.0","new_version":"4.25.1","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":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"pandas","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pandas-stubs","old_version":"2.3.0.250703","new_version":"2.3.2.250926","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.26.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.18.15"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.14"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.2","new_version":"0.48.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250516","new_version":"2025.2.0.20250809","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.32.0","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 50 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.2` | `7.10.7` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.7.19` | `2025.9.25` |\n| [mypy](https://github.com/python/mypy) | `1.17.0` | `1.18.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [pre-commit-hooks](https://github.com/pre-commit/pre-commit-hooks) | `5.0.0` | `6.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.4` | `0.13.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.1.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.0` | `0.23.1` |\n| [jupytext](https://github.com/mwouts/jupytext) | `1.17.2` | `1.17.3` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.0` | `6.30.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.11.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.2` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.7.14` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.15` | `1.8.17` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.14` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.1` | `2.3.3` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.0.250703` | `2.3.2.250926` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.26.0` | `0.27.1` |\n| ruamel-yaml | `0.18.14` | `0.18.15` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.14` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.2` | `0.48.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250516` | `2025.2.0.20250809` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.37.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.32.0` | `20.34.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.1.0 to 25.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild gallery docker image with python3-slim and reduce image size (\u003ca href=\"https://redirect.github.com/psf/black/issues/4686\"\u003e#4686\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\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/black/commit/af0ba72a73598c76189d6dd1b21d8532255d5942\"\u003e\u003ccode\u003eaf0ba72\u003c/code\u003e\u003c/a\u003e Prepare docs for release 25.9.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4751\"\u003e#4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ffc01a027580d99401abb3197e83d50dc4f4c746\"\u003e\u003ccode\u003effc01a0\u003c/code\u003e\u003c/a\u003e Fix schema generation error caused by new click version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/626b32fe2b5387656be6694da9a4b7a3148fb892\"\u003e\u003ccode\u003e626b32f\u003c/code\u003e\u003c/a\u003e Add normalizing for \u003ccode\u003e\\r\u003c/code\u003e style newlines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/57a461258f324e33bca189b2eb49d7f7a944ffe7\"\u003e\u003ccode\u003e57a4612\u003c/code\u003e\u003c/a\u003e Fix mypy type issue (\u003ca href=\"https://redirect.github.com/psf/black/issues/4745\"\u003e#4745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4f6ad7cf8c3092e0fb4d82f54fe77ccde134468a\"\u003e\u003ccode\u003e4f6ad7c\u003c/code\u003e\u003c/a\u003e Wrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/24f516961720c5578069dee30415b776359b7be5\"\u003e\u003ccode\u003e24f5169\u003c/code\u003e\u003c/a\u003e ci: Run diff-shades on unstable instead of preview (\u003ca href=\"https://redirect.github.com/psf/black/issues/4741\"\u003e#4741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4d55e6017993ee3f0927524e8bc19ead8de9e8ed\"\u003e\u003ccode\u003e4d55e60\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0cf39efdbc3aaea455f95d31e5b42efb6bd61478\"\u003e\u003ccode\u003e0cf39ef\u003c/code\u003e\u003c/a\u003e Improve the performance of get_string_prefix (\u003ca href=\"https://redirect.github.com/psf/black/issues/4742\"\u003e#4742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1f779dec013db37475fa56a5c9939a09eab7e7d6\"\u003e\u003ccode\u003e1f779de\u003c/code\u003e\u003c/a\u003e Fix line ranges decorator edge case (\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/203fd6b5cdad975178b8174394a7f7fb13d14f02\"\u003e\u003ccode\u003e203fd6b\u003c/code\u003e\u003c/a\u003e Optimize Line string method (\u003ca href=\"https://redirect.github.com/psf/black/issues/4739\"\u003e#4739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.2 to 7.10.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\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/nedbat/coveragepy/commit/92a2af54e6bc948a9c536bd9b12bab70fb055904\"\u003e\u003ccode\u003e92a2af5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/952afdaca658d5e1acdd533c727448a0b218caf0\"\u003e\u003ccode\u003e952afda\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a301761e69da97b27662f395974d26f78fa8b2b5\"\u003e\u003ccode\u003ea301761\u003c/code\u003e\u003c/a\u003e build: riscv64 wheels (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5daff8d38786aa540ff9bec622eb3389f117f911\"\u003e\u003ccode\u003e5daff8d\u003c/code\u003e\u003c/a\u003e docs: now source is formatted with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/04bbc3acfd914fdd99ffec9873bc03bdc7329357\"\u003e\u003ccode\u003e04bbc3a\u003c/code\u003e\u003c/a\u003e docs: discuss cog in the contributing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c181b9315f59a81667da47cf3d760d0253872238\"\u003e\u003ccode\u003ec181b93\u003c/code\u003e\u003c/a\u003e build: use cog --check-fail-msg to instruct devs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/33c4ba196f49e0ee86ab0ff473c0876c0bacd5fa\"\u003e\u003ccode\u003e33c4ba1\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0744b73b6b503ccf2cb75aba095c023672b921a8\"\u003e\u003ccode\u003e0744b73\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 2 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0d5a112fc54c1d5a07f3f2ec451779808902c9af\"\u003e\u003ccode\u003e0d5a112\u003c/code\u003e\u003c/a\u003e perf: bulk narrowing to avoid N**2. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003e#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a868ed9269ca474748130f5c6360cd2aae66ffc8\"\u003e\u003ccode\u003ea868ed9\u003c/code\u003e\u003c/a\u003e docs: mention Python Discord on the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.2...7.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.7.19 to 2025.9.25\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e2025.09.25 -- Gleaming Green\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange the dark mode code back to \u003ccode\u003enative\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.07.19 -- Frozen Flame\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Switch to accessible-pygments themes\u003c/li\u003e\n\u003cli\u003e✨ Prefetch the sidebar logos\u003c/li\u003e\n\u003cli\u003e✨ Fix flickering header drop shadow on Safari\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003erel=edit\u003c/code\u003e attribute to \u0026quot;Edit this page\u0026quot; link/icon\u003c/li\u003e\n\u003cli\u003eBump NodeJS and npm dependency versions\u003c/li\u003e\n\u003cli\u003eBump Saas \u0026amp; Webpack major versions\u003c/li\u003e\n\u003cli\u003eImprove current page detection to be resilient to sticky elements above header\u003c/li\u003e\n\u003cli\u003eModernise Sass and use \u003ccode\u003e@use\u003c/code\u003e + \u003ccode\u003e@forward\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove top of code \u003ccode\u003eborder-radius\u003c/code\u003e with captions\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value\u003c/li\u003e\n\u003cli\u003eUse distinct images for light and dark mode in the documentation\u003c/li\u003e\n\u003cli\u003eUse the modern Saas Modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.08.06 -- Energetic Eminence\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 8\u003c/li\u003e\n\u003cli\u003e✨ Add smoother transitions between breakpoints\u003c/li\u003e\n\u003cli\u003eIncrease specificity of table-wrapper selector\u003c/li\u003e\n\u003cli\u003eAvoid page breaks inside paragraphs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.07.18 -- Dull Denim\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove how icons are handled and aligned.\u003c/li\u003e\n\u003cli\u003eImprove scroll event handler.\u003c/li\u003e\n\u003cli\u003eHide the copybutton by default.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003esource_view_link\u003c/code\u003e configuration handling.\u003c/li\u003e\n\u003cli\u003eFix close tag on pencil icon.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.05.06 -- Cheerful Cerulean\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add new custom icons for auto mode, reflecting the currently active theme.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/7c5f8fac52926f4854141cb5bf374c1681aedbec\"\u003e\u003ccode\u003e7c5f8fa\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.09.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/8bfdc54b2e8803450a2cb5dcab643a40b6934be2\"\u003e\u003ccode\u003e8bfdc54\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d92b62fee4cedd5b2ac1d267353d96541c9e0fb0\"\u003e\u003ccode\u003ed92b62f\u003c/code\u003e\u003c/a\u003e Switch the dark mode theme back to \u003ccode\u003enative\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/83c3446288014357bb8a7875bb81b664b7f15896\"\u003e\u003ccode\u003e83c3446\u003c/code\u003e\u003c/a\u003e Add Blender to \u0026quot;used by\u0026quot; section (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/426ea05d879ee7dfdf74ba7c8b089f73081abbfd\"\u003e\u003ccode\u003e426ea05\u003c/code\u003e\u003c/a\u003e Remove old scrollbar selectors (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d22d31c4b196a29092ac606737b6e9a7ae99273a\"\u003e\u003ccode\u003ed22d31c\u003c/code\u003e\u003c/a\u003e Remove trailing slash on void elements (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/f91944a688410f0aecd936b02f658279814ec017\"\u003e\u003ccode\u003ef91944a\u003c/code\u003e\u003c/a\u003e Fix invalid HTML5 (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/894\"\u003e#894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/a1f74d89a18ca59d231fe365bcc1616f6934ad28\"\u003e\u003ccode\u003ea1f74d8\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.17.0 to 1.18.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.18.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on recursive alias (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19845\"\u003e19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd additional guidance for stubtest errors when runtime is \u003ccode\u003eobject.__init__\u003c/code\u003e (Stephen Morton, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19733\"\u003e19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of None values in f-string expressions in mypyc (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19846\"\u003e19846\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003eAnthony Sottile\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eCharlie Denton\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eCoolCat467\u003c/li\u003e\n\u003cli\u003eDaniel Hnyk\u003c/li\u003e\n\u003cli\u003eEmily\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJahongir Qurbonov\u003c/li\u003e\n\u003cli\u003eJelle Zijlstra\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eOmer Hadari\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003ePrinceNaroliya\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eRobsdedude\u003c/li\u003e\n\u003cli\u003eSaul Shanabrook\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.17\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.17 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features and bug fixes.\nYou can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\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/python/mypy/commit/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/03fbaa941bccc3a9f8aea796d586603b67119bf2\"\u003e\u003ccode\u003e03fbaa9\u003c/code\u003e\u003c/a\u003e bump version to 1.18.1 due to wheels failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b44a1fbf0cf9fd90fd29d6bcd9f64c55dd2fd4c8\"\u003e\u003ccode\u003eb44a1fb\u003c/code\u003e\u003c/a\u003e removed +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7197a99d1aebb1b7a584f82a53c44efb7dddf136\"\u003e\u003ccode\u003e7197a99\u003c/code\u003e\u003c/a\u003e Removed Unreleased in the Changelog for Release 1.18 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19827\"\u003e#19827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.17.0...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit-hooks` from 5.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/releases\"\u003epre-commit-hooks's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit-hooks v6.0.0\u003c/h2\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e: improve error message.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1115\"\u003e#1115\u003c/a\u003e PR by \u003ca href=\"https://github.com/homebysix\"\u003e\u003ccode\u003e@​homebysix\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMigrating\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003enow requires python \u0026gt;= 3.9.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1098\"\u003e#1098\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efile-contents-sorter\u003c/code\u003e: disallow \u003ccode\u003e--unique\u003c/code\u003e and \u003ccode\u003e--ignore-case\u003c/code\u003e at the same\ntime.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1095\"\u003e#1095\u003c/a\u003e PR by \u003ca href=\"https://github.com/nemacysts\"\u003e\u003ccode\u003e@​nemacysts\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/794\"\u003e#794\u003c/a\u003e issue by \u003ca href=\"https://github.com/teksturi\"\u003e\u003ccode\u003e@​teksturi\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003echeck-byte-order-marker\u003c/code\u003e and \u003ccode\u003efix-encoding-pragma\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003echeck-byte-order-marker\u003c/code\u003e: migrate to \u003ccode\u003efix-byte-order-marker\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix-encoding-pragma\u003c/code\u003e: migrate to \u003ccode\u003epyupgrade\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1034\"\u003e#1034\u003c/a\u003e PR by \u003ca href=\"https://github.com/mxr\"\u003e\u003ccode\u003e@​mxr\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1032\"\u003e#1032\u003c/a\u003e issue by \u003ca href=\"https://github.com/mxr\"\u003e\u003ccode\u003e@​mxr\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/522\"\u003e#522\u003c/a\u003e PR by \u003ca href=\"https://github.com/jgowdy\"\u003e\u003ccode\u003e@​jgowdy\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/blob/main/CHANGELOG.md\"\u003epre-commit-hooks's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.0 - 2025-08-09\u003c/h1\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e: improve error message.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1115\"\u003e#1115\u003c/a\u003e PR by \u003ca href=\"https://github.com/homebysix\"\u003e\u003ccode\u003e@​homebysix\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMigrating\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003enow requires python \u0026gt;= 3.9.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1098\"\u003e#1098\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efile-contents-sorter\u003c/code\u003e: disallow \u003ccode\u003e--unique\u003c/code\u003e and \u003ccode\u003e--ignore-case\u003c/code\u003e at the same\ntime.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1095\"\u003e#1095\u003c/a\u003e PR by \u003ca href=\"https://github.com/nemacysts\"\u003e\u003ccode\u003e@​nemacysts\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/794\"\u003e#794\u003c/a\u003e issue by \u003ca href=\"https://github.com/teksturi\"\u003e\u003ccode\u003e@​teksturi\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003echeck-byte-order-marker\u003c/code\u003e and \u003ccode\u003efix-encoding-pragma\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003echeck-byte-order-marker\u003c/code\u003e: migrate to \u003ccode\u003efix-byte-order-marker\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix-encoding-pragma\u003c/code\u003e: migrate to \u003ccode\u003epyupgrade\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1034\"\u003e#1034\u003c/a\u003e PR by \u003ca href=\"https://github.com/mxr\"\u003e\u003ccode\u003e@​mxr\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1032\"\u003e#1032\u003c/a\u003e issue by \u003ca href=\"https://github.com/mxr\"\u003e\u003ccode\u003e@​mxr\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/522\"\u003e#522\u003c/a\u003e PR by \u003ca href=\"https://github.com/jgowdy\"\u003e\u003ccode\u003e@​jgowdy\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/3e8a8703264a2f4a69428a0aa4dcb512790b2c8c\"\u003e\u003ccode\u003e3e8a870\u003c/code\u003e\u003c/a\u003e v6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/a8f86514f4a0c0feb925ef5f99d247f599235a73\"\u003e\u003ccode\u003ea8f8651\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1185\"\u003e#1185\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/1acd88e5a4a42378eee7c7d167650c2b5607a0fb\"\u003e\u003ccode\u003e1acd88e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/1450343284c2b606aac3b406e238986ae4f5fe9d\"\u003e\u003ccode\u003e1450343\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1182\"\u003e#1182\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/b554d0acae118aecad833aaa3639a622d0f3597a\"\u003e\u003ccode\u003eb554d0a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/582b9c66e0791980685c8b80bb11e6a3df1a06ef\"\u003e\u003ccode\u003e582b9c6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1174\"\u003e#1174\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/84f8a9d27f13fe534ad65acc88776cda81ee7fed\"\u003e\u003ccode\u003e84f8a9d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/ec458dc1db98861800bd35c16a7d97e8cdb61484\"\u003e\u003ccode\u003eec458dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1166\"\u003e#1166\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/1ea82dfbb949818c4272dec7f386923af7f3990e\"\u003e\u003ccode\u003e1ea82df\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/commit/540cd64f14fd8aa64244a9ec1873a03913d168f8\"\u003e\u003ccode\u003e540cd64\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit-hooks/issues/1164\"\u003e#1164\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit-hooks/compare/v5.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.4 to 0.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.13.2\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.13.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.13.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b0bdf0334e38417f8617057cd0392a4b53954120\"\u003e\u003ccode\u003eb0bdf03\u003c/code\u003e\u003c/a\u003e Bump 0.13.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20576\"\u003e#20576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7331d393c555ece88aa69f685562163790ddf611\"\u003e\u003ccode\u003e7331d39\u003c/code\u003e\u003c/a\u003e Update rooster to 0.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20575\"\u003e#20575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/529e5fa6c24ea68501adb18245eab27c701598d2\"\u003e\u003ccode\u003e529e5fa\u003c/code\u003e\u003c/a\u003e [ty] Ecosystem analyzer: timing report (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20571\"\u003e#20571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efbb80f7475c63b62981444d5c429109ff12ad32\"\u003e\u003ccode\u003eefbb80f\u003c/code\u003e\u003c/a\u003e [ty] Remove hack in protocol satisfiability check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20568\"\u003e#20568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9f3cffc65cb834661e17263245761a66f9474af0\"\u003e\u003ccode\u003e9f3cffc\u003c/code\u003e\u003c/a\u003e Add 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/21be94ac33f445d8a681babec6c56ca3d1b67156\"\u003e\u003ccode\u003e21be94a\u003c/code\u003e\u003c/a\u003e [ty] Explicitly test assignability/subtyping between unions of nominal types ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7d5dc98c193cc5cab00d557b6a392d35137d990\"\u003e\u003ccode\u003eb7d5dc9\u003c/code\u003e\u003c/a\u003e [ty] Add tests for interactions of \u003ccode\u003e@classmethod\u003c/code\u003e, \u003ccode\u003e@staticmethod\u003c/code\u003e, and proto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e1bb74b25a0f730a5baff263d753ffe03cf857b1\"\u003e\u003ccode\u003ee1bb74b\u003c/code\u003e\u003c/a\u003e [ty] Match variadic argument to variadic parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20511\"\u003e#20511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edeb45804ef9dbe348d393f3ab77288062a3c77e\"\u003e\u003ccode\u003eedeb458\u003c/code\u003e\u003c/a\u003e [ty] fallback to resolve_real_module in file_to_module (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20461\"\u003e#20461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bea92c822980b1575d58542dffa2c960393d7603\"\u003e\u003ccode\u003ebea92c8\u003c/code\u003e\u003c/a\u003e [ty] More precise type inference for dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20523\"\u003e#20523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.4...0.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merg...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-statstruk/pull/94","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-statstruk/issues/94","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/94/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-10-01T06:32:13.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2877038891","node_id":"PR_kwDOM8OGrs6rfCEr","number":9,"state":"open","title":"Bump the all-dependencies group across 1 directory with 39 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-10-01T06:32:13.000Z","updated_at":"2025-10-01T06:32:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":39,"packages":[{"name":"fastapi","old_version":"0.115.14","new_version":"0.118.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"alembic","old_version":"1.16.2","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"pydantic","old_version":"2.11.7","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"anyio","old_version":"4.9.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"pydantic-core","old_version":"2.33.2","new_version":"2.39.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"sqlalchemy","old_version":"2.0.41","new_version":"2.0.43","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"starlette","old_version":"0.46.2","new_version":"0.48.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"typing-inspection","old_version":"0.4.1","new_version":"0.4.2","repository_url":"https://github.com/pydantic/typing-inspection"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dulwich","old_version":"0.22.8","new_version":"0.24.2","repository_url":"https://github.com/dulwich/dulwich"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"findpython","old_version":"0.6.3","new_version":"0.7.0","repository_url":"https://github.com/frostming/findpython"},{"name":"jaraco-functools","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/jaraco/jaraco.functools"},{"name":"more-itertools","old_version":"10.7.0","new_version":"10.8.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"numpy","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.3.0","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pbs-installer","old_version":"2025.7.2","new_version":"2025.9.18","repository_url":"https://github.com/frostming/pbs-installer"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"poetry","old_version":"2.1.3","new_version":"2.2.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"poetry-core","old_version":"2.1.3","new_version":"2.2.1","repository_url":"https://github.com/python-poetry/poetry-core"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"rapidfuzz","old_version":"3.13.0","new_version":"3.14.1","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"trove-classifiers","old_version":"2025.5.9.12","new_version":"2025.9.11.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"virtualenv","old_version":"20.31.2","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"xattr","old_version":"1.1.4","new_version":"1.2.0","repository_url":"https://github.com/xattr/xattr"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 39 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.14` | `0.118.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.37.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.2` | `1.16.5` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.11.9` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.11.0` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.2.4` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.33.2` | `2.39.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.41` | `2.0.43` |\n| [starlette](https://github.com/Kludex/starlette) | `0.46.2` | `0.48.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [typing-inspection](https://github.com/pydantic/typing-inspection) | `0.4.1` | `0.4.2` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `0.22.8` | `0.24.2` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [findpython](https://github.com/frostming/findpython) | `0.6.3` | `0.7.0` |\n| [jaraco-functools](https://github.com/jaraco/jaraco.functools) | `4.2.1` | `4.3.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.7.0` | `10.8.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.1` | `2.3.3` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.0` | `2.3.3` |\n| [pbs-installer](https://github.com/frostming/pbs-installer) | `2025.7.2` | `2025.9.18` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.3` | `2.2.1` |\n| [poetry-core](https://github.com/python-poetry/poetry-core) | `2.1.3` | `2.2.1` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.13.0` | `3.14.1` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [trove-classifiers](https://github.com/pypa/trove-classifiers) | `2025.5.9.12` | `2025.9.11.17` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.31.2` | `20.34.0` |\n| [xattr](https://github.com/xattr/xattr) | `1.1.4` | `1.2.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n\n\nUpdates `fastapi` from 0.115.14 to 0.118.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.118.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for \u003ccode\u003eStreamingResponse\u003c/code\u003es with dependencies with \u003ccode\u003eyield\u003c/code\u003e or \u003ccode\u003eUploadFile\u003c/code\u003es, close after the response is done. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14099\"\u003e#14099\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\u003cp\u003eBefore FastAPI 0.118.0, if you used a dependency with \u003ccode\u003eyield\u003c/code\u003e, it would run the exit code after the \u003cem\u003epath operation function\u003c/em\u003e returned but right before sending the response.\u003c/p\u003e\n\u003cp\u003eThis change also meant that if you returned a \u003ccode\u003eStreamingResponse\u003c/code\u003e, the exit code of the dependency with \u003ccode\u003eyield\u003c/code\u003e would have been already run.\u003c/p\u003e\n\u003cp\u003eFor example, if you had a database session in a dependency with \u003ccode\u003eyield\u003c/code\u003e, the \u003ccode\u003eStreamingResponse\u003c/code\u003e would not be able to use that session while streaming data because the session would have already been closed in the exit code after \u003ccode\u003eyield\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis behavior was reverted in 0.118.0, to make the exit code after \u003ccode\u003eyield\u003c/code\u003e be executed after the response is sent.\u003c/p\u003e\n\u003cp\u003eYou can read more about it in the docs for \u003ca href=\"https://fastapi.tiangolo.com/advanced/advanced-dependencies#dependencies-with-yield-httpexception-except-and-background-tasks\"\u003eAdvanced Dependencies - Dependencies with \u003ccode\u003eyield\u003c/code\u003e, \u003ccode\u003eHTTPException\u003c/code\u003e, \u003ccode\u003eexcept\u003c/code\u003e and Background Tasks\u003c/a\u003e. Including what you could do if you wanted to close a database session earlier, before returning the response to the client.\u003c/p\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update \u003ccode\u003etutorial/security/oauth2-jwt/\u003c/code\u003e to use \u003ccode\u003epwdlib\u003c/code\u003e with Argon2 instead of \u003ccode\u003epasslib\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13917\"\u003e#13917\u003c/a\u003e by \u003ca href=\"https://github.com/Neizvestnyj\"\u003e\u003ccode\u003e@​Neizvestnyj\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix typos in OAuth2 password request forms. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14112\"\u003e#14112\u003c/a\u003e by \u003ca href=\"https://github.com/alv2017\"\u003e\u003ccode\u003e@​alv2017\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update contributing guidelines for installing requirements. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14095\"\u003e#14095\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Sync German docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14098\"\u003e#14098\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14103\"\u003e#14103\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Refactor sponsor image handling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14102\"\u003e#14102\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix sponsor display issue by hiding element on image error. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14097\"\u003e#14097\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Hide sponsor badge when sponsor image is not displayed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14096\"\u003e#14096\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11194\"\u003e#11194\u003c/a\u003e by \u003ca href=\"https://github.com/thomasleveil\"\u003e\u003ccode\u003e@​thomasleveil\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9425\"\u003e#9425\u003c/a\u003e by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow array values for OpenAPI schema \u003ccode\u003etype\u003c/code\u003e field. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13639\"\u003e#13639\u003c/a\u003e by \u003ca href=\"https://github.com/sammasak\"\u003e\u003ccode\u003e@​sammasak\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add OpenAPI \u003ccode\u003eexternal_docs\u003c/code\u003e parameter to \u003ccode\u003eFastAPI\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13713\"\u003e#13713\u003c/a\u003e by \u003ca href=\"https://github.com/cmtoro\"\u003e\u003ccode\u003e@​cmtoro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9704\"\u003e#9704\u003c/a\u003e by \u003ca href=\"https://github.com/vvanglro\"\u003e\u003ccode\u003e@​vvanglro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/6039\"\u003e#6039\u003c/a\u003e by \u003ca href=\"https://github.com/MaxwellPayne\"\u003e\u003ccode\u003e@​MaxwellPayne\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003ejsonable_encoder\u003c/code\u003e alters \u003ccode\u003ejson_encoders\u003c/code\u003e of Pydantic v1 objects. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/4972\"\u003e#4972\u003c/a\u003e by \u003ca href=\"https://github.com/aboubacs\"\u003e\u003ccode\u003e@​aboubacs\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/333f1ba737be6507fc707278f6b69cf1f81efdc1\"\u003e\u003ccode\u003e333f1ba\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.118.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d5168a4a1293fbc44799fbab615a120c6fdb85e\"\u003e\u003ccode\u003e1d5168a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bfa54b406d298155edbdfe8fdd173479857d5ad6\"\u003e\u003ccode\u003ebfa54b4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e329d78f866a12893699f786f1209a666e1688e3\"\u003e\u003ccode\u003ee329d78\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for \u003ccode\u003eStreamingResponse\u003c/code\u003es with dependencies with \u003ccode\u003eyield\u003c/code\u003e or `Upl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/861b22c40897a03d2d7e5926923d962121ed5e2e\"\u003e\u003ccode\u003e861b22c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/efdafa43613f084d198e51f6858e8610beddb5ed\"\u003e\u003ccode\u003eefdafa4\u003c/code\u003e\u003c/a\u003e 📝 Update \u003ccode\u003etutorial/security/oauth2-jwt/\u003c/code\u003e to use \u003ccode\u003epwdlib\u003c/code\u003e with Argon2 instead ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/450a334253b1426aab08b4dea17b16ba8b4c098c\"\u003e\u003ccode\u003e450a334\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3eb2ee7510905447a36abe628708f102e09cfa59\"\u003e\u003ccode\u003e3eb2ee7\u003c/code\u003e\u003c/a\u003e ✏️ Fix typos in OAuth2 password request forms (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14112\"\u003e#14112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/287eb316df5b7c35dd1e5da27ca2a8d345bee8d1\"\u003e\u003ccode\u003e287eb31\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cca3341cb93cb4d0267dd8e862db9235aeaac11c\"\u003e\u003ccode\u003ecca3341\u003c/code\u003e\u003c/a\u003e 🌐 Sync German docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14098\"\u003e#14098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.14...0.118.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.3 to 0.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\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.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2658\"\u003eKludex/uvicorn#2658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2659\"\u003eKludex/uvicorn#2659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2684\"\u003eKludex/uvicorn#2684\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.35.0...0.36.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.35.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\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/uvicorn/pull/2540\"\u003eencode/uvicorn#2540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e by \u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\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/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\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/uvicorn/compare/0.34.3...0.35.0\"\u003ehttps://github.com/encode/uvicorn/compare/0.34.3...0.35.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\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/4098bcac97aa0fbda2f4e73278fbbe3b128be940\"\u003e\u003ccode\u003e4098bca\u003c/code\u003e\u003c/a\u003e Version 0.37.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8c057fa3fc407f1e5e58e6bf0b46494732ebfd1f\"\u003e\u003ccode\u003e8c057fa\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/bbe119e4e83517a230487658f864d3ad67131772\"\u003e\u003ccode\u003ebbe119e\u003c/code\u003e\u003c/a\u003e Add note about \u003ccode\u003e--timeout-keep-alive\u003c/code\u003e being measured in seconds (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2744f14c9906d90d235f9fcd5289da0c47e4abe4\"\u003e\u003ccode\u003e2744f14\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1dfb0bd885bbb0c466c19eee8bb2001bed59ca8c\"\u003e\u003ccode\u003e1dfb0bd\u003c/code\u003e\u003c/a\u003e Version 0.36.1 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2710\"\u003e#2710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3d0d46a704b772ec68596d8e1c9d9264b1499f34\"\u003e\u003ccode\u003e3d0d46a\u003c/code\u003e\u003c/a\u003e Raise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ad9e5b90dda248b08afdffd18a02b73a5b9d405c\"\u003e\u003ccode\u003ead9e5b9\u003c/code\u003e\u003c/a\u003e docs: redirect uvicorn.org to uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2705\"\u003e#2705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0e3b18c39959ad4ec8bfe6cb7e11c82664aaa702\"\u003e\u003ccode\u003e0e3b18c\u003c/code\u003e\u003c/a\u003e Version 0.36.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2704\"\u003e#2704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f84661d56eb14bbd29b995af8774c73856e3ce04\"\u003e\u003ccode\u003ef84661d\u003c/code\u003e\u003c/a\u003e chore: drop mention to scripts/publish (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2696\"\u003e#2696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dcd7e6c94e87b6ffbce378e4ada3d67654af975d\"\u003e\u003ccode\u003edcd7e6c\u003c/code\u003e\u003c/a\u003e docs: replace uvicorn.org by uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2703\"\u003e#2703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.3...0.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.16.2 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.4\u003c/h1\u003e\n\u003cp\u003eReleased: July 10, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue in new \u003ccode\u003epyproject.toml\u003c/code\u003e support where boolean values, such as\nthose used for the \u003ccode\u003erecursive_version_locations\u003c/code\u003e and \u003ccode\u003esourceless\u003c/code\u003e\nconfiguration parameters, would not be accepted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1694\"\u003e#1694\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.3\u003c/h1\u003e\n\u003cp\u003eReleased: July 8, 2025\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added new \u003ccode\u003epyproject_async\u003c/code\u003e template, combining the new \u003ccode\u003epyproject\u003c/code\u003e\ntemplate with the \u003ccode\u003easync\u003c/code\u003e template.  Pull request courtesy Alc-Alc.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1683\"\u003e#1683\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Add \u0026quot;module\u0026quot; post-write hook. This hook type is almost identical to the\nconsole_scripts hook, except it's running \u003ccode\u003epython -m black\u003c/code\u003e instead of\nusing black's \u003ccode\u003econsole_script\u003c/code\u003e. It is mainly useful for tools without\nconsole scripts (e.g. ruff), but has semantics closer to the\nconsole_scripts hook in that it finds the ruff module available to the\nrunning interpreter instead of finding an executable by path. Pull request\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.7 to 2.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 2025-09-13\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.8 2025-09-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.11.9/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.9\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.8\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/92310953c146a2ac668a0141be820c083e325f5d\"\u003e\u003ccode\u003e9231095\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f003a89eeaff35ee18f220a2c790d20536e3d0ab\"\u003e\u003ccode\u003ef003a89\u003c/code\u003e\u003c/a\u003e Backport v1.10.23 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/96b81ddaf93a1f2e19ff1609080c33de10b8d931\"\u003e\u003ccode\u003e96b81dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/966f377692194b3f1d6d5155ac78052bec0a751d\"\u003e\u003ccode\u003e966f377\u003c/code\u003e\u003c/a\u003e Fix mypy v2 plugin for upcoming \u003ccode\u003e1.18\u003c/code\u003e mypy release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4.11.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\n(\u003ccode\u003e[#975](https://github.com/agronholm/anyio/issues/975) \u0026lt;https://github.com/agronholm/anyio/pull/975\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\nkeyword argument (\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\n(\u003ccode\u003e[#971](https://github.com/agronholm/anyio/issues/971) \u0026lt;https://github.com/agronholm/anyio/pull/971\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\n(\u003ccode\u003e[#974](https://github.com/agronholm/anyio/issues/974) \u0026lt;https://github.com/agronholm/anyio/pull/974\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e\n(\u003ccode\u003e[#964](https://github.com/agronholm/anyio/issues/964) \u0026lt;https://github.com/agronholm/anyio/pull/964\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all\nsocket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e\n(\u003ccode\u003e[#857](https://github.com/agronholm/anyio/issues/857) \u0026lt;https://github.com/agronholm/anyio/issues/857\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously\nraised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise\n\u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but\n\u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this\nscenario. (\u003ccode\u003e[#671](https://github.com/agronholm/anyio/issues/671) \u0026lt;https://github.com/agronholm/anyio/issues/671\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e 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/agronholm/anyio/commit/08737af202f6610cdb8ba53fecaefd9c03269637\"\u003e\u003ccode\u003e08737af\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059\"\u003e\u003ccode\u003e8bb9fe0\u003c/code\u003e\u003c/a\u003e Fixed the inconsistent exception on sending to a closed TCP stream (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981\"\u003e\u003ccode\u003e9637093\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9\"\u003e\u003ccode\u003ef1bc6ee\u003c/code\u003e\u003c/a\u003e Fixed changelog entry formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133\"\u003e\u003ccode\u003e0b58964\u003c/code\u003e\u003c/a\u003e Mentioned the sub-interpreter support in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71\"\u003e\u003ccode\u003e1ed112c\u003c/code\u003e\u003c/a\u003e Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0\"\u003e\u003ccode\u003eaceeee0\u003c/code\u003e\u003c/a\u003e Re-enabled coverage reporting on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2\"\u003e\u003ccode\u003e6b890dc\u003c/code\u003e\u003c/a\u003e Reworded a changelog entry and added PR links to others\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd\"\u003e\u003ccode\u003e944257d\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a\"\u003e\u003ccode\u003e087975f\u003c/code\u003e\u003c/a\u003e Fixed a documentation style (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dnspython` from 2.7.0 to 2.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/releases\"\u003ednspython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ednspython 2.8.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://dnspython.readthedocs.io/en/stable/whatsnew.html\"\u003eWhat's New\u003c/a\u003e for details.\u003c/p\u003e\n\u003cp\u003eThe minimum supported version of Python is 3.10.\u003c/p\u003e\n\u003cp\u003eMy thanks to the many people who have contributed to this release. Also thanks to my co-maintainers: Tomáš Křížek, Petr Špaček, and Brian Wellington.\u003c/p\u003e\n\u003cp\u003eThis release was published to PyPI using Trusted Publishing.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst\"\u003ednspython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003edns/btreezone.py provides another zone versioned implementation built on top of a\nB-tree.  It maintains DNSSEC sort order, labels nodes as delegation points or glue,\nand can find the \u0026quot;bounds\u0026quot; of a name (useful for DNSSEC responses).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/query.py now provides make_socket(), make_ssl_socket(), and make_ssl_context()\nto make using persistent connections with the query code easier.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edns/win32util.py now supports explicitly setting the configuration method used to get\nsystem dns info, using the set_config_method() function.   There is a new configuration\nmethod that uses the Win32 API, which can be set using\nset_config_method(ConfigMethod.Win32).  We are considering making the Win32 API\nthe default in the future as we believe it to be the most accurate.  Any feedback on\nit compared to the other methods is welcome.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe DSYNC record is now supported.  This type is still in draft stage at the IETF\nand is subject to change.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe minimum supported Python version is now 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/77fd94cd9716faf23e0a6e333f6568fc24284402\"\u003e\u003ccode\u003e77fd94c\u003c/code\u003e\u003c/a\u003e 2.8.0 versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/884f38345a8152342fe8ab5da8db9aab654051ba\"\u003e\u003ccode\u003e884f383\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/1938fe331f97376bf91c028fbfb8c7588c1b84f4\"\u003e\u003ccode\u003e1938fe3\u003c/code\u003e\u003c/a\u003e update 2.8 branch workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a35d6925efe20744e8cf7545d19d03ba06e7ab6f\"\u003e\u003ccode\u003ea35d692\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/c862baaf0d0aa36d2e7003dfe226cd6ad4d827c4\"\u003e\u003ccode\u003ec862baa\u003c/code\u003e\u003c/a\u003e 2.8.0rc1 prep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/0945d5923d58048c17325975f70f0738c87570b4\"\u003e\u003ccode\u003e0945d59\u003c/code\u003e\u003c/a\u003e more lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/8fa6766d2f7a2431372fc912fb334e752290ebf2\"\u003e\u003ccode\u003e8fa6766\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/641633503ee6b07bf382594ac04707072b90de18\"\u003e\u003ccode\u003e6416335\u003c/code\u003e\u003c/a\u003e Type syntax (\u003ca href=\"https://redirect.github.com/rthalley/dnspython/issues/1218\"\u003e#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a4591447b7d6e38479bcddb14de3b69f314e7009\"\u003e\u003ccode\u003ea459144\u003c/code\u003e\u003c/a\u003e lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rthalley/dnspython/commit/a0d5f172e89f30709b47b59fb0919d8cf137f611\"\u003e\u003ccode\u003ea0d5f17\u003c/code\u003e\u003c/a\u003e fix the all entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rthalley/dnspython/compare/v2.7.0...v2.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `email-validator` from 2.2.0 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JoshData/python-email-validator/releases\"\u003eemail-validator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name.\u003c/li\u003e\n\u003cli\u003eThe library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new \u003ccode\u003estrict=True\u003c/code\u003e parameter, and the overall 254 character email address length limit is still in place.\u003c/li\u003e\n\u003cli\u003eNew EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eallow_display_name=True\u003c/code\u003e, display names are now returned with Unicode NFC normalization.\u003c/li\u003e\n\u003cli\u003eTypeError is now raised if something other than str (or bytes) is passed as the email address.\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/JoshData/python-email-validator/blob/main/CHANGELOG.md\"\u003eemail-validator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0 (August 26, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name.\u003c/li\u003e\n\u003cli\u003eThe library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new \u003ccode\u003estrict=True\u003c/code\u003e parameter, and the overall 254 character email address length limit is still in place.\u003c/li\u003e\n\u003cli\u003eNew EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eallow_display_name=True\u003c/code\u003e, display names are now returned with Unicode NFC normalization.\u003c/li\u003e\n\u003cli\u003eTypeError is now raised if something other than str (or bytes) is passed as the email address.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/030a63a183a6a66450e98381ca9a23ab9769706a\"\u003e\u003ccode\u003e030a63a\u003c/code\u003e\u003c/a\u003e Version 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/e943a0f07f5c130b4a419e0cd79f705f36bf24fe\"\u003e\u003ccode\u003ee943a0f\u003c/code\u003e\u003c/a\u003e Raise TypeError when an invalid argument is passed for email, closes \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/155\"\u003e#155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/f90d256045dc1ccbcffd5514189267d14a9e3ea1\"\u003e\u003ccode\u003ef90d256\u003c/code\u003e\u003c/a\u003e Remove local part length check unless new strict flag is given, fixes \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/158\"\u003e#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/98800bac023b8713351393a5043034065f1ea6cb\"\u003e\u003ccode\u003e98800ba\u003c/code\u003e\u003c/a\u003e Add explicit checks for internationalized domain name characters invalid unde...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/936aead3bf5c608f8561954e0d2955b7f97bfdad\"\u003e\u003ccode\u003e936aead\u003c/code\u003e\u003c/a\u003e Fix final syntax checks on normalized internationalized domains checking the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/8043de49596f08d54a07e2bc7c442ced074216a6\"\u003e\u003ccode\u003e8043de4\u003c/code\u003e\u003c/a\u003e NFC-normalize display names per UTS \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/39\"\u003e#39\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/bc08faa2a74b51a9e7ba7ff4f995c0b475cb5b12\"\u003e\u003ccode\u003ebc08faa\u003c/code\u003e\u003c/a\u003e Add one-off error messages for full-width-at and small-commercial-at which ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/a1c90ab58fb0f5d969a8351a68ca15bff068527c\"\u003e\u003ccode\u003ea1c90ab\u003c/code\u003e\u003c/a\u003e Split exceptions_types.py into exceptions.py and types.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/dbcf07cc5c8066c14b6dc58d2dbb4a1e582eeefd\"\u003e\u003ccode\u003edbcf07c\u003c/code\u003e\u003c/a\u003e Change package name from using underscore to dash to match PyPi normalized pa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/7c22208ee5b82c377e960ddcea5293691eadc6cc\"\u003e\u003ccode\u003e7c22208\u003c/code\u003e\u003c/a\u003e Support ALLOW_DISPLAY_NAME and ALLOW_EMPTY_LOCAL in the CLI (\u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JoshData/python-email-validator/compare/v2.2.0...v2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.3 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.2.4 (2025-08-07)\u003c/h1\u003e\n\u003cp\u003e.. note::\u003c/p\u003e\n\u003cp\u003eThe 3.2.x series will be the last to support Python 3.9.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious small build/test changes for less common configurations (e.g.,\nbuilding CPython with assertions enabled but NOT debugging),\ncontributed by Michał Górny. Note that while greenlet will BUILD in\na free-threaded Python, it will cause the GIL to be allocated and\nused, and memory may leak. Also note that these configurations\nare not tested by this project's CI.\u003c/li\u003e\n\u003cli\u003eFix an assertion error on debug builds of Python 3.14 when using the\nexperimental JIT. See :issue:\u003ccode\u003e460 \u0026lt;https://github.com/python-greenlet/greenlet/issues/460\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/65f8da82b13a1273e55a6bfcbd1f9da09fc4eb7a\"\u003e\u003ccode\u003e65f8da8\u003c/code\u003e\u003c/a\u003e Preparing release 3.2.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b2c65590134322f7f4543856613cff74616a746b\"\u003e\u003ccode\u003eb2c6559\u003c/code\u003e\u003c/a\u003e Update CHANGES for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b2aa1aa1a014e0cc0c6f32a716ef3c2900ccd41f\"\u003e\u003ccode\u003eb2aa1aa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/462\"\u003e#462\u003c/a\u003e from python-greenlet/issue460\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/a1990d8cc8064e23e9e29283da2228d411093b84\"\u003e\u003ccode\u003ea1990d8\u003c/code\u003e\u003c/a\u003e Python3.14/JIT: Save and restore the PyThreadState current_executor object.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/68af251cbc534259b28cf32eaaa78031b756fd92\"\u003e\u003ccode\u003e68af251\u003c/code\u003e\u003c/a\u003e Py3.14 w/JIT: Fix leakchecks.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/74a65bd144a4b5d27e860e5db25d783259bc9e25\"\u003e\u003ccode\u003e74a65bd\u003c/code\u003e\u003c/a\u003e Various free-threaded fixes; bump tested Python version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e3e295391c096b8e3d72ac05f987650c83f763e2\"\u003e\u003ccode\u003ee3e2953\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/459\"\u003e#459\u003c/a\u003e from mgorny/py314-debug-build-failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/bdb5f44c97e59a7b47b14b64c0a33f3bed372465\"\u003e\u003ccode\u003ebdb5f44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/456\"\u003e#456\u003c/a\u003e from mgorny/setuptools-test-dep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/b288f437451903962d71c6d26bbad1e1cd54070d\"\u003e\u003ccode\u003eb288f43\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/457\"\u003e#457\u003c/a\u003e from mgorny/fix-assert-test-skips\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/739cc559ac42f41f6ccbc7d556d730fd424f3be8\"\u003e\u003ccode\u003e739cc55\u003c/code\u003e\u003c/a\u003e Fix py312+ crash test skips to correctly check for assertions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.2.3...3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/3.0.2...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-core` from 2.33.2 to 2.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-core/releases\"\u003epydantic-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.39.0 2025-08-11\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: improve onboarding by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1775\"\u003epydantic/pydantic-core#1775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump pytest to 8.4 by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1781\"\u003epydantic/pydantic-core#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_computed_fields\u003c/code\u003e serialization option 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-core/pull/1780\"\u003epydantic/pydantic-core#1780\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eF...\n\n_Description has been truncated_","html_url":"https://github.com/min2ha/access-w3actdb-api/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/min2ha%2Faccess-w3actdb-api/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-09-29T22:46:44.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2872319907","node_id":"PR_kwDOG7qlY86rNB-j","number":76,"state":"closed","title":"Bump the pip group with 42 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-30T08:16:16.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T22:46:44.000Z","updated_at":"2025-09-30T08:16:16.000Z","time_to_close":34172,"merged_at":"2025-09-30T08:16:16.000Z","merged_by":"EysteinWaade","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":42,"packages":[{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"jupyterlab","old_version":"4.4.7","new_version":"4.4.9","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"ruff","old_version":"0.13.1","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"anyio","old_version":"4.9.0","new_version":"4.11.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.2"},{"name":"cachetools","old_version":"5.5.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"cryptography","old_version":"45.0.4","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"grpcio","old_version":"1.73.1","new_version":"1.75.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.75.1"},{"name":"ipykernel","old_version":"6.29.5","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"9.4.0","new_version":"9.6.0","repository_url":"https://github.com/ipython/ipython"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"numpy","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/numpy/numpy"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.32.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 42 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.7` | `4.4.9` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.1` | `0.13.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.11.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.2` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.2` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `46.0.1` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [grpcio](https://github.com/grpc/grpc) | `1.73.1` | `1.75.1` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.75.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `6.30.1` |\n| [ipython](https://github.com/ipython/ipython) | `9.4.0` | `9.6.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.1` | `2.3.3` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.32.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20250822` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\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 `jupyterlab` from 4.4.7 to 4.4.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jupyterlab/jupyterlab/releases\"\u003ejupyterlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.4.9\u003c/h2\u003e\n\u003ch2\u003e4.4.9\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.4.8...80d2a2ce152f359dbe17af364942472776b49fc7\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly dispose \u003ccode\u003eTerminalManager\u003c/code\u003e even if terminals are not available \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17876\"\u003e#17876\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scrolling to targets within notebook \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17928\"\u003e#17928\u003c/a\u003e (\u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-09-25\u0026amp;to=2025-09-26\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-09-25..2025-09-26\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​jupyterlab-probot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-09-25..2025-09-26\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2025-09-25..2025-09-26\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2025-09-25..2025-09-26\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​meeseeksmachine\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.4.8\u003c/h2\u003e\n\u003ch2\u003e4.4.8\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.4.7...526a3d7f7038ed24903bf9c88b9df3e061c65b28\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDebugger: Only send the \u003ccode\u003econfigurationDone\u003c/code\u003e message once as per the DAP \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17912\"\u003e#17912\u003c/a\u003e (\u003ca href=\"https://github.com/martinRenou\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix output prompt overlay height for large outputs \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17863\"\u003e#17863\u003c/a\u003e (\u003ca href=\"https://github.com/Meriem-BenIsmail\"\u003e\u003ccode\u003e@​Meriem-BenIsmail\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent overlay of content from other columns when renaming a file in the file browser \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17857\"\u003e#17857\u003c/a\u003e (\u003ca href=\"https://github.com/CrafterKolyan\"\u003e\u003ccode\u003e@​CrafterKolyan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix notebook toolbar item order \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17866\"\u003e#17866\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore npmjs.com in check-links \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17915\"\u003e#17915\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd JupyterCon banner and Jupyter colors \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17906\"\u003e#17906\u003c/a\u003e (\u003ca href=\"https://github.com/choldgraf\"\u003e\u003ccode\u003e@​choldgraf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-09-03\u0026amp;to=2025-09-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abrichet+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​brichet\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agithub-actions+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AHaudinFlorence+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​HaudinFlorence\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​jupyterlab-probot\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​meeseeksmachine\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMeriem-BenIsmail+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Meriem-BenIsmail\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Awilliamstein+updated%3A2025-09-03..2025-09-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​williamstein\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/9a217d024d13ef82c8de060a9fed8b430d28424a\"\u003e\u003ccode\u003e9a217d0\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.4.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/80d2a2ce152f359dbe17af364942472776b49fc7\"\u003e\u003ccode\u003e80d2a2c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17876\"\u003e#17876\u003c/a\u003e: Correctly dispose \u003ccode\u003eTerminalManager\u003c/code\u003e even if terminals are...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/5c06ebf4a6db97968c86913c0c5d370ecefe1c88\"\u003e\u003ccode\u003e5c06ebf\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17928\"\u003e#17928\u003c/a\u003e: Fix scrolling to targets within notebook (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17933\"\u003e#17933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/a889bb529baa9d9ab5b533a718daa1143b998f23\"\u003e\u003ccode\u003ea889bb5\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.4.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/51c585bc57325fb7299562541054bd24e5e4119a\"\u003e\u003ccode\u003e51c585b\u003c/code\u003e\u003c/a\u003e Fix integrity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/f8841dcbf9c4629b07a80e370e2b9a32861018c7\"\u003e\u003ccode\u003ef8841dc\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/526a3d7f7038ed24903bf9c88b9df3e061c65b28\"\u003e\u003ccode\u003e526a3d7\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17915\"\u003e#17915\u003c/a\u003e: Ignore npmjs.com in check-links (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17921\"\u003e#17921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/911ff90b8b504f9cee0520294a01020593f0b3fa\"\u003e\u003ccode\u003e911ff90\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17912\"\u003e#17912\u003c/a\u003e: Debugger: Only send the \u003ccode\u003econfigurationDone\u003c/code\u003e message once ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/2d0ff31e26d6eae113376ac12d7c2ce07f1fc09d\"\u003e\u003ccode\u003e2d0ff31\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17906\"\u003e#17906\u003c/a\u003e: Add JupyterCon banner and Jupyter colors (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17908\"\u003e#17908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/276b38ca510926e48a6ed7226aaeb8b09722e428\"\u003e\u003ccode\u003e276b38c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17863\"\u003e#17863\u003c/a\u003e: Fix output prompt overlay height for large outputs (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17889\"\u003e#17889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.4.7...@jupyterlab/lsp@4.4.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.1 to 0.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.13.2\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.13.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b0bdf0334e38417f8617057cd0392a4b53954120\"\u003e\u003ccode\u003eb0bdf03\u003c/code\u003e\u003c/a\u003e Bump 0.13.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20576\"\u003e#20576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7331d393c555ece88aa69f685562163790ddf611\"\u003e\u003ccode\u003e7331d39\u003c/code\u003e\u003c/a\u003e Update rooster to 0.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20575\"\u003e#20575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/529e5fa6c24ea68501adb18245eab27c701598d2\"\u003e\u003ccode\u003e529e5fa\u003c/code\u003e\u003c/a\u003e [ty] Ecosystem analyzer: timing report (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20571\"\u003e#20571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efbb80f7475c63b62981444d5c429109ff12ad32\"\u003e\u003ccode\u003eefbb80f\u003c/code\u003e\u003c/a\u003e [ty] Remove hack in protocol satisfiability check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20568\"\u003e#20568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9f3cffc65cb834661e17263245761a66f9474af0\"\u003e\u003ccode\u003e9f3cffc\u003c/code\u003e\u003c/a\u003e Add 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/21be94ac33f445d8a681babec6c56ca3d1b67156\"\u003e\u003ccode\u003e21be94a\u003c/code\u003e\u003c/a\u003e [ty] Explicitly test assignability/subtyping between unions of nominal types ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7d5dc98c193cc5cab00d557b6a392d35137d990\"\u003e\u003ccode\u003eb7d5dc9\u003c/code\u003e\u003c/a\u003e [ty] Add tests for interactions of \u003ccode\u003e@classmethod\u003c/code\u003e, \u003ccode\u003e@staticmethod\u003c/code\u003e, and proto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e1bb74b25a0f730a5baff263d753ffe03cf857b1\"\u003e\u003ccode\u003ee1bb74b\u003c/code\u003e\u003c/a\u003e [ty] Match variadic argument to variadic parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20511\"\u003e#20511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edeb45804ef9dbe348d393f3ab77288062a3c77e\"\u003e\u003ccode\u003eedeb458\u003c/code\u003e\u003c/a\u003e [ty] fallback to resolve_real_module in file_to_module (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20461\"\u003e#20461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bea92c822980b1575d58542dffa2c960393d7603\"\u003e\u003ccode\u003ebea92c8\u003c/code\u003e\u003c/a\u003e [ty] More precise type inference for dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20523\"\u003e#20523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.1...0.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.0 to 4.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to \u003ccode\u003eCancelScope.cancel()\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/975\"\u003e#975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by passing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to \u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e keyword argument (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/256\"\u003e#256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically handle all async tests (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all socket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/857\"\u003e#857\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously raised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise \u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but \u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this scenario. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4.11.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\n(\u003ccode\u003e[#975](https://github.com/agronholm/anyio/issues/975) \u0026lt;https://github.com/agronholm/anyio/pull/975\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\nkeyword argument (\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\n(\u003ccode\u003e[#971](https://github.com/agronholm/anyio/issues/971) \u0026lt;https://github.com/agronholm/anyio/pull/971\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\n(\u003ccode\u003e[#974](https://github.com/agronholm/anyio/issues/974) \u0026lt;https://github.com/agronholm/anyio/pull/974\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e\n(\u003ccode\u003e[#964](https://github.com/agronholm/anyio/issues/964) \u0026lt;https://github.com/agronholm/anyio/pull/964\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all\nsocket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e\n(\u003ccode\u003e[#857](https://github.com/agronholm/anyio/issues/857) \u0026lt;https://github.com/agronholm/anyio/issues/857\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed inconsistency between Trio and asyncio where a TCP stream that previously\nraised a \u003ccode\u003eBrokenResourceError\u003c/code\u003e on \u003ccode\u003esend()\u003c/code\u003e would still raise\n\u003ccode\u003eBrokenResourceError\u003c/code\u003e after the stream was closed on asyncio, but\n\u003ccode\u003eClosedResourceError\u003c/code\u003e on Trio. They now both raise a \u003ccode\u003eClosedResourceError\u003c/code\u003e in this\nscenario. (\u003ccode\u003e[#671](https://github.com/agronholm/anyio/issues/671) \u0026lt;https://github.com/agronholm/anyio/issues/671\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e 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/agronholm/anyio/commit/08737af202f6610cdb8ba53fecaefd9c03269637\"\u003e\u003ccode\u003e08737af\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/8bb9fe04a1c0a4b6615c843d4a88bba38a386059\"\u003e\u003ccode\u003e8bb9fe0\u003c/code\u003e\u003c/a\u003e Fixed the inconsistent exception on sending to a closed TCP stream (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/963709358a05ced66986e928b593b4bd82422981\"\u003e\u003ccode\u003e9637093\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/f1bc6ee95a75007681ef9cb4eec0369838b390e9\"\u003e\u003ccode\u003ef1bc6ee\u003c/code\u003e\u003c/a\u003e Fixed changelog entry formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0b58964a26c68ca427b711bbe8536f61ed900133\"\u003e\u003ccode\u003e0b58964\u003c/code\u003e\u003c/a\u003e Mentioned the sub-interpreter support in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1ed112c65628d3cce312e7b6875b9f914d174a71\"\u003e\u003ccode\u003e1ed112c\u003c/code\u003e\u003c/a\u003e Ensure same port is used for IPv4/IPv6 when creating TCP listener with local_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aceeee09868642311a96626924f2f09c088a26c0\"\u003e\u003ccode\u003eaceeee0\u003c/code\u003e\u003c/a\u003e Re-enabled coverage reporting on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6b890dc869f54b6237caff52a74e86382c076ad2\"\u003e\u003ccode\u003e6b890dc\u003c/code\u003e\u003c/a\u003e Reworded a changelog entry and added PR links to others\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/944257d2d59e8057dd00cd5cc96d8f73028031dd\"\u003e\u003ccode\u003e944257d\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/087975f44599471a84bea2077731143a346c276a\"\u003e\u003ccode\u003e087975f\u003c/code\u003e\u003c/a\u003e Fixed a documentation style (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.14.2\n\nUpdates `cachetools` from 5.5.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comm` from 0.2.2 to 0.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/comm/releases\"\u003ecomm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.3\u003c/h2\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\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/ipython/comm/blob/main/CHANGELOG.md\"\u003ecomm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/057b00a49aabb97fb3c66eedcd97f09c6481d3c8\"\u003e\u003ccode\u003e057b00a\u003c/code\u003e\u003c/a\u003e Publish 0.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003e\u003ccode\u003eec3eb43\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003etraitlets\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/ipython/comm/issues/32\"\u003e#32\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/2223501c677ac4b8289294947cb10f4f120c6117\"\u003e\u003ccode\u003e2223501\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/29\"\u003e#29\u003c/a\u003e from Carreau/secmd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/31714fec2ec02aa0fdeb34bdaddee0ed94e5b676\"\u003e\u003ccode\u003e31714fe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/706df339274bd66b887badfc755a5369223b09a4\"\u003e\u003ccode\u003e706df33\u003c/code\u003e\u003c/a\u003e Add Security.md file.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/3737dd5e8225dbcf710fb3490b01d3bdafc80294\"\u003e\u003ccode\u003e3737dd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/28\"\u003e#28\u003c/a\u003e from Carreau/pc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/265d2c07ef255785e9aef4111f1391091d7e9d7e\"\u003e\u003ccode\u003e265d2c0\u003c/code\u003e\u003c/a\u003e pre-commit updates and fixes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...v0.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 46.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.1 - 2025-09-16\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed an issue where users installing via ``pip`` on Python 3.14 development\n  versions would not properly install a dependency.\n* Fixed an issue building the free-threaded macOS 3.14 wheels.\n\u003cp\u003e.. _v46-0-0:\u003c/p\u003e\n\u003cp\u003e46.0.0 - 2025-09-16\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for Python 3.7 has been removed.\u003c/li\u003e\n\u003cli\u003eSupport for OpenSSL \u0026lt; 3.0 is deprecated and will be removed in the next\nrelease.\u003c/li\u003e\n\u003cli\u003eSupport for \u003ccode\u003ex86_64\u003c/code\u003e macOS (including publishing wheels) is deprecated\nand will be removed in two releases. We will switch to publishing an\n\u003ccode\u003earm64\u003c/code\u003e only wheel for macOS.\u003c/li\u003e\n\u003cli\u003eSupport for 32-bit Windows (including ...\n\n_Description has been truncated_","html_url":"https://github.com/navikt/pensjon-data-analyse/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/navikt%2Fpensjon-data-analyse/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"}},{"old_version":"2.19.1","new_version":"2.21.2","update_type":"minor","path":null,"pr_created_at":"2025-09-29T07:42:50.000Z","version_change":"2.19.1 → 2.21.2","issue":{"uuid":"3463669336","node_id":"PR_kwDOGujB-86rB-jI","number":125,"state":"open","title":"deps-dev(deps-dev): bump fastjsonschema from 2.19.1 to 2.21.2","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T07:42:50.000Z","updated_at":"2025-10-07T08:03:51.450Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps-dev(deps-dev)","packages":[{"name":"fastjsonschema","old_version":"2.19.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":null,"ecosystem":"pip"},"body":"Bumps [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) from 2.19.1 to 2.21.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.19.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fastjsonschema\u0026package-manager=pip\u0026previous-version=2.19.1\u0026new-version=2.21.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/TensorAeroSpace/TensorAeroSpace/pull/125","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TensorAeroSpace%2FTensorAeroSpace/issues/125","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/125/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-09-22T18:55:12.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2850694134","node_id":"PR_kwDOG7qlY86p6iP2","number":74,"state":"open","title":"Bump the pip group across 1 directory with 42 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T18:55:12.000Z","updated_at":"2025-09-22T18:55:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":42,"packages":[{"name":"google-cloud-bigquery","old_version":"3.36.0","new_version":"3.38.0","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"google-cloud-bigquery-storage","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/googleapis/python-bigquery-storage"},{"name":"dataverk-airflow","old_version":"1.8.0","new_version":"1.8.1","repository_url":"https://github.com/navikt/dataverk-airflow"},{"name":"ruff","old_version":"0.12.12","new_version":"0.13.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"anyio","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.13.5"},{"name":"cachetools","old_version":"5.5.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"cryptography","old_version":"45.0.4","new_version":"46.0.1","repository_url":"https://github.com/pyca/cryptography"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"grpcio","old_version":"1.73.1","new_version":"1.75.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.75.0"},{"name":"ipykernel","old_version":"6.29.5","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"9.4.0","new_version":"9.5.0","repository_url":"https://github.com/ipython/ipython"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"numpy","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/numpy/numpy"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.32.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 42 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.36.0` | `3.38.0` |\n| [google-cloud-bigquery-storage](https://github.com/googleapis/python-bigquery-storage) | `2.33.0` | `2.33.1` |\n| [dataverk-airflow](https://github.com/navikt/dataverk-airflow) | `1.8.0` | `1.8.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.12` | `0.13.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.10.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.13.5` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.2` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `46.0.1` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [grpcio](https://github.com/grpc/grpc) | `1.73.1` | `1.75.0` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.75.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `6.30.1` |\n| [ipython](https://github.com/ipython/ipython) | `9.4.0` | `9.5.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.1` | `2.3.3` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.32.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20250822` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `google-cloud-bigquery` from 3.36.0 to 3.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery/releases\"\u003egoogle-cloud-bigquery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.38.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.37.0...v3.38.0\"\u003e3.38.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd additional query stats (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2270\"\u003e#2270\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/7b1b718123afd80c0f68212946e4179bcd6db67f\"\u003e7b1b718\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.37.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003e3.37.0\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003eef2740a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e33ea296\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean that the job has not completed or was unsuccessful (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2278\"\u003e#2278\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e6e88d7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e8a13c12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery/blob/main/CHANGELOG.md\"\u003egoogle-cloud-bigquery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.37.0...v3.38.0\"\u003e3.38.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd additional query stats (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2270\"\u003e#2270\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/7b1b718123afd80c0f68212946e4179bcd6db67f\"\u003e7b1b718\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003e3.37.0\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003eef2740a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e33ea296\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean that the job has not completed or was unsuccessful (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2278\"\u003e#2278\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e6e88d7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e8a13c12\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/googleapis/python-bigquery/commit/7cad6cf2f95e28b46e529f99b5c4d3cc61603ca4\"\u003e\u003ccode\u003e7cad6cf\u003c/code\u003e\u003c/a\u003e chore(main): release 3.38.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2289\"\u003e#2289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/c9aba64c1f7240f1ad2caa00d55a1a4f86bdc8a3\"\u003e\u003ccode\u003ec9aba64\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2275\"\u003e#2275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/7b1b718123afd80c0f68212946e4179bcd6db67f\"\u003e\u003ccode\u003e7b1b718\u003c/code\u003e\u003c/a\u003e feat: add additional query stats (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2270\"\u003e#2270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/4b0ef0cfcf7def138e43a22223abfcbefc330da2\"\u003e\u003ccode\u003e4b0ef0c\u003c/code\u003e\u003c/a\u003e chore(main): release 3.37.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2269\"\u003e#2269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e\u003ccode\u003e6e88d7d\u003c/code\u003e\u003c/a\u003e docs: clarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e\u003ccode\u003e33ea296\u003c/code\u003e\u003c/a\u003e fix: remove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e\u003ccode\u003e8a13c12\u003c/code\u003e\u003c/a\u003e docs: clarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/435ecdb62d8402fea317763e48934fa510ce8026\"\u003e\u003ccode\u003e435ecdb\u003c/code\u003e\u003c/a\u003e bug: updates \u003ccode\u003e__eq__\u003c/code\u003e comparison on TableConstraint (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2274\"\u003e#2274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/43527af24e56994357205b482a86b805950d2d0f\"\u003e\u003ccode\u003e43527af\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2259\"\u003e#2259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003e\u003ccode\u003eef2740a\u003c/code\u003e\u003c/a\u003e feat: updates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery-storage` from 2.33.0 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/releases\"\u003egoogle-cloud-bigquery-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003e2.33.1\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Exclude google-auth 2.24.0 and 2.25.0 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/blob/v2.33.1/CHANGELOG.md\"\u003egoogle-cloud-bigquery-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003e2.33.1\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Exclude google-auth 2.24.0 and 2.25.0 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\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/googleapis/python-bigquery-storage/commit/a7d9c212c76dc3f132f7899149a499d6790a7149\"\u003e\u003ccode\u003ea7d9c21\u003c/code\u003e\u003c/a\u003e chore(main): release 2.33.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/8170d3d84e4c0ae68b93902378e95b050543a739\"\u003e\u003ccode\u003e8170d3d\u003c/code\u003e\u003c/a\u003e chore: remove redundant code (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/979\"\u003e#979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e\u003ccode\u003e5b60dd4\u003c/code\u003e\u003c/a\u003e fix(deps): require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/978\"\u003e#978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/2a6daa16a5a6fe76901084748f909eba3ffb4c30\"\u003e\u003ccode\u003e2a6daa1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/977\"\u003e#977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/fa7c6b2b6700f25502605e67ae177ef11c49d868\"\u003e\u003ccode\u003efa7c6b2\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dataverk-airflow` from 1.8.0 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/navikt/dataverk-airflow/releases\"\u003edataverk-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump the gh group across 1 directory with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/pull/136\"\u003enavikt/dataverk-airflow#136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\"\u003ehttps://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/232348f77a9e6b4a68aafcc5200970a53b43d53c\"\u003e\u003ccode\u003e232348f\u003c/code\u003e\u003c/a\u003e handle empty args list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/78c476ea1aa4c966ba48238bca613be94335e157\"\u003e\u003ccode\u003e78c476e\u003c/code\u003e\u003c/a\u003e pass entrypoint arg from parent operators to underlying kubernetes_operator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/d26188af992f55ee60e29ae1612faec15fca45a8\"\u003e\u003ccode\u003ed26188a\u003c/code\u003e\u003c/a\u003e evaluate correct prop in test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/7f4a6d1d3c67f3bd8eb611eeaa84b434b0212796\"\u003e\u003ccode\u003e7f4a6d1\u003c/code\u003e\u003c/a\u003e remove deprecated python version from available versions + evaluate correct p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/97d902a1b858fe78c9d81f45e63b9e3ded64466c\"\u003e\u003ccode\u003e97d902a\u003c/code\u003e\u003c/a\u003e fix: default value for cmds arg to kubernetes_operator can be empty list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/49749ea6c2f3f6f0a96484284b4be98c9eb601f3\"\u003e\u003ccode\u003e49749ea\u003c/code\u003e\u003c/a\u003e add test for overriding container command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/dd48795f5b3f0f3b986188acfa1ace4a21d93a50\"\u003e\u003ccode\u003edd48795\u003c/code\u003e\u003c/a\u003e argument order for tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/60bf0dd448d3a27c6761589e0b0129be146f3bb5\"\u003e\u003ccode\u003e60bf0dd\u003c/code\u003e\u003c/a\u003e configurable container command for kubernetes_operator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/765c8068852dc418e7f8a5d469c1a4885f800eeb\"\u003e\u003ccode\u003e765c806\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/issues/136\"\u003e#136\u003c/a\u003e from navikt/dependabot/github_actions/\u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/issues/3272707161\"\u003egh-3272707161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/029e79758f48540167dc971ff8619be6328df8c5\"\u003e\u003ccode\u003e029e797\u003c/code\u003e\u003c/a\u003e build(deps): bump the gh group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.12 to 0.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect unnecessary \u003ccode\u003eNone\u003c/code\u003e default for additional key expression types (\u003ccode\u003eSIM910\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20343\"\u003e#20343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add fix for \u003ccode\u003ePTH123\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20169\"\u003e#20169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH111\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20215\"\u003e#20215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eE301\u003c/code\u003e to only trigger for functions immediately within a class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19768\"\u003e#19768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20279\"\u003e#20279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle t-strings for token-based rules and suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20357\"\u003e#20357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix truthiness: dict-only \u003ccode\u003e**\u003c/code\u003e displays not truthy for \u003ccode\u003eshell\u003c/code\u003e (\u003ccode\u003eS602\u003c/code\u003e, \u003ccode\u003eS604\u003c/code\u003e, \u003ccode\u003eS609\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20177\"\u003e#20177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix diagnostic to show correct method name for \u003ccode\u003estr.rsplit\u003c/code\u003e calls (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20459\"\u003e#20459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20197\"\u003e#20197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variable (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20427\"\u003e#20427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Prevent infinite loop with \u003ccode\u003eI002\u003c/code\u003e and \u003ccode\u003eUP026\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20327\"\u003e#20327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Recognize t-strings, generators, and lambdas in \u003ccode\u003einvalid-index-type\u003c/code\u003e (\u003ccode\u003eRUF016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20213\"\u003e#20213\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eRUF102\u003c/code\u003e] Respect rule redirects in invalid rule code detection (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark the fix for \u003ccode\u003eunreliable-callable-check\u003c/code\u003e as always unsafe (\u003ccode\u003eB004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dataclass attribute value instantiation from nested frozen dataclass (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20352\"\u003e#20352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fixes to \u003ccode\u003eoutput-format=sarif\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat panics as fatal diagnostics, sort panics last (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eanalyze.string-imports-min-dots\u003c/code\u003e to settings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20375\"\u003e#20375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md with Albumentations new repository URL (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20415\"\u003e#20415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable inline noqa for multiline strings in playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20442\"\u003e#20442\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IDrokin117\"\u003e\u003ccode\u003e@​IDrokin117\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect unnecessary \u003ccode\u003eNone\u003c/code\u003e default for additional key expression types (\u003ccode\u003eSIM910\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20343\"\u003e#20343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add fix for \u003ccode\u003ePTH123\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20169\"\u003e#20169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH111\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20215\"\u003e#20215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eE301\u003c/code\u003e to only trigger for functions immediately within a class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19768\"\u003e#19768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20279\"\u003e#20279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle t-strings for token-based rules and suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20357\"\u003e#20357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix truthiness: dict-only \u003ccode\u003e**\u003c/code\u003e displays not truthy for \u003ccode\u003eshell\u003c/code\u003e (\u003ccode\u003eS602\u003c/code\u003e, \u003ccode\u003eS604\u003c/code\u003e, \u003ccode\u003eS609\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20177\"\u003e#20177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix diagnostic to show correct method name for \u003ccode\u003estr.rsplit\u003c/code\u003e calls (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20459\"\u003e#20459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20197\"\u003e#20197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variable (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20427\"\u003e#20427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Prevent infinite loop with \u003ccode\u003eI002\u003c/code\u003e and \u003ccode\u003eUP026\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20327\"\u003e#20327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Recognize t-strings, generators, and lambdas in \u003ccode\u003einvalid-index-type\u003c/code\u003e (\u003ccode\u003eRUF016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20213\"\u003e#20213\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eRUF102\u003c/code\u003e] Respect rule redirects in invalid rule code detection (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark the fix for \u003ccode\u003eunreliable-callable-check\u003c/code\u003e as always unsafe (\u003ccode\u003eB004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dataclass attribute value instantiation from nested frozen dataclass (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20352\"\u003e#20352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fixes to \u003ccode\u003eoutput-format=sarif\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat panics as fatal diagnostics, sort panics last (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eanalyze.string-imports-min-dots\u003c/code\u003e to settings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20375\"\u003e#20375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md with Albumentations new repository URL (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20415\"\u003e#20415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable inline noqa for multiline strings in playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20442\"\u003e#20442\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IDrokin117\"\u003e\u003ccode\u003e@​IDrokin117\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/706be0a6e7e09936511198f2ff8982915520d138\"\u003e\u003ccode\u003e706be0a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epyproject.toml\u003c/code\u003e to rooster config \u003ccode\u003eversion_files\u003c/code\u003e and bump to 0.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7b40428b6a1aaad88abb05b2fa291f0ae895d379\"\u003e\u003ccode\u003e7b40428\u003c/code\u003e\u003c/a\u003e Bump 0.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20473\"\u003e#20473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9b57553681965e5cde1120f3f78ec50f8c7cd4a\"\u003e\u003ccode\u003eb9b5755\u003c/code\u003e\u003c/a\u003e Upgrade to the latest rooster version and include contributors in CHANGELOG (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4b5d67a4a4cc7193b4867dcc748c8399571eaf8\"\u003e\u003ccode\u003eb4b5d67\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0b60584b7e561f7ff7120f3ff6ecb5394522d90f\"\u003e\u003ccode\u003e0b60584\u003c/code\u003e\u003c/a\u003e Bump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/821b2f8b2e033bfff407a908e11d71126b7bef45\"\u003e\u003ccode\u003e821b2f8\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1758f26d941afac9ed497c5ad34253f3c5446d07\"\u003e\u003ccode\u003e1758f26\u003c/code\u003e\u003c/a\u003e Update rust toolchain to 1.90 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20469\"\u003e#20469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2502ff7638da3d290eacd4fcef34809faaeddfd5\"\u003e\u003ccode\u003e2502ff7\u003c/code\u003e\u003c/a\u003e [ty] Make TypeIs invariant in its type argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20428\"\u003e#20428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/144373fb3c8690043eec30a12bd5d6c55e8e9ca6\"\u003e\u003ccode\u003e144373f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/91995aa5169175de55494bc3bb59781c7a3097fc\"\u003e\u003ccode\u003e91995aa\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variabl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.12...0.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.0 to 4.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\n(\u003ccode\u003e[#975](https://github.com/agronholm/anyio/issues/975) \u0026lt;https://github.com/agronholm/anyio/pull/975\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\nkeyword argument (\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\n(\u003ccode\u003e[#971](https://github.com/agronholm/anyio/issues/971) \u0026lt;https://github.com/agronholm/anyio/pull/971\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\n(\u003ccode\u003e[#974](https://github.com/agronholm/anyio/issues/974) \u0026lt;https://github.com/agronholm/anyio/pull/974\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eChanged the default type argument of \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e from \u003ccode\u003eAny\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e\n(\u003ccode\u003e[#964](https://github.com/agronholm/anyio/issues/964) \u0026lt;https://github.com/agronholm/anyio/pull/964\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFixed TCP listener behavior to guarantee the same ephemeral port is used for all\nsocket listeners when \u003ccode\u003elocal_port=0\u003c/code\u003e\n(\u003ccode\u003e[#857](https://github.com/agronholm/anyio/issues/857) \u0026lt;https://github.com/agronholm/anyio/issues/857\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and\n\u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e\n(\u003ccode\u003e[#818](https://github.com/agronholm/anyio/issues/818) \u0026lt;https://github.com/agronholm/anyio/issues/818\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e\nand \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things,\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/27abc2c47526feca2c1ba29a2f48d65f4281c6c2\"\u003e\u003ccode\u003e27abc2c\u003c/code\u003e\u003c/a\u003e Bumped up the version, second attempt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6\"\u003e\u003ccode\u003e0cf55b8\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345\"\u003e\u003ccode\u003eb029df5\u003c/code\u003e\u003c/a\u003e Updated the to_interpreter module to use the public API on Python 3.14 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1\"\u003e\u003ccode\u003e01f02cf\u003c/code\u003e\u003c/a\u003e Incorporated EP2025 sprint feedback and added a new section (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4\"\u003e\u003ccode\u003ed896480\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/954\"\u003e#954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c\"\u003e\u003ccode\u003e0282b81\u003c/code\u003e\u003c/a\u003e Added the BufferedByteReceiveStream.feed_data() method (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb\"\u003e\u003ccode\u003e19e5477\u003c/code\u003e\u003c/a\u003e Fixed a cancellation edge case for asyncio CapacityLimiter (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827\"\u003e\u003ccode\u003e4666df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e\"\u003e\u003ccode\u003e38c2567\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb\"\u003e\u003ccode\u003e3db73ac\u003c/code\u003e\u003c/a\u003e Add missing imports for Readcting to cancellation in worker threads example (...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.13.5\n\nUpdates `cachetools` from 5.5.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comm` from 0.2.2 to 0.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/comm/releases\"\u003ecomm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.3\u003c/h2\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\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/ipython/comm/blob/main/CHANGELOG.md\"\u003ecomm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates a...\n\n_Description has been truncated_","html_url":"https://github.com/navikt/pensjon-data-analyse/pull/74","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/navikt%2Fpensjon-data-analyse/issues/74","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/74/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-09-22T16:21:51.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2850197108","node_id":"PR_kwDOJJPgAc6p4o50","number":123,"state":"open","title":"Bump fastjsonschema from 2.21.1 to 2.21.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T16:21:51.000Z","updated_at":"2025-09-22T16:21:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":null,"ecosystem":"pip"},"body":"Bumps [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) from 2.21.1 to 2.21.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fastjsonschema\u0026package-manager=pip\u0026previous-version=2.21.1\u0026new-version=2.21.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/CoderSales/django-postgres-jupyter-2/pull/123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderSales%2Fdjango-postgres-jupyter-2/issues/123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/123/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-09-22T05:49:01.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2848004712","node_id":"PR_kwDOMIHDVM6pwRpo","number":966,"state":"closed","title":"Bump the python-packages group across 1 directory with 53 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T05:34:46.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T05:49:01.000Z","updated_at":"2025-09-29T05:34:46.000Z","time_to_close":603945,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":53,"packages":[{"name":"airportsdata","old_version":"20250706","new_version":"20250909","repository_url":"https://github.com/mborsetti/airportsdata"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.13.5"},{"name":"blake3","old_version":"1.0.5","new_version":"1.0.6","repository_url":"https://github.com/oconnor663/blake3-py"},{"name":"cachetools","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"compressed-tensors","old_version":"0.10.2","new_version":"0.11.0","repository_url":"https://github.com/neuralmagic/compressed-tensors"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastapi","old_version":"0.116.1","new_version":"0.117.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fsspec","old_version":"2025.7.0","new_version":"2025.9.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"grpcio","old_version":"1.74.0","new_version":"1.75.0","repository_url":"https://github.com/grpc/grpc"},{"name":"huggingface-hub","old_version":"0.34.4","new_version":"0.35.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"jiter","old_version":"0.10.0","new_version":"0.11.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jsonschema","old_version":"4.25.0","new_version":"4.25.1","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":"lm-format-enforcer","old_version":"0.11.2","new_version":"0.11.3","repository_url":"https://github.com/noamgat/lm-format-enforcer"},{"name":"mistral-common","old_version":"1.8.3","new_version":"1.8.5","repository_url":"https://github.com/mistralai/mistral-common"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"multidict","old_version":"6.6.3","new_version":"6.6.4","repository_url":"https://github.com/aio-libs/multidict"},{"name":"nvidia-cudnn-cu12","old_version":"9.12.0.46","new_version":"9.13.0.50"},{"name":"nvidia-ml-py","old_version":"13.580.65","new_version":"13.580.82"},{"name":"nvidia-nccl-cu12","old_version":"2.27.7","new_version":"2.28.3"},{"name":"openai","old_version":"1.99.6","new_version":"1.108.1","repository_url":"https://github.com/openai/openai-python"},{"name":"outlines","old_version":"1.2.2","new_version":"1.2.5","repository_url":"https://github.com/dottxt-ai/outlines"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"protobuf","old_version":"6.31.1","new_version":"6.32.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pybind11","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/pybind/pybind11"},{"name":"pydantic","old_version":"2.11.7","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.38.0","new_version":"2.39.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pyzmq","old_version":"27.0.1","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"ray","old_version":"2.48.0","new_version":"2.49.2","repository_url":"https://github.com/ray-project/ray"},{"name":"regex","old_version":"2025.7.34","new_version":"2025.9.18","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.27.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"sentencepiece","old_version":"0.2.0","new_version":"0.2.1","repository_url":"https://github.com/google/sentencepiece"},{"name":"smart-open","old_version":"7.3.0.post1","new_version":"7.3.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.2","new_version":"0.48.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"textual","old_version":"5.3.0","new_version":"6.1.0","repository_url":"https://github.com/Textualize/textual"},{"name":"tokenizers","old_version":"0.21.4","new_version":"0.22.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"transformers","old_version":"4.55.0","new_version":"4.56.2","repository_url":"https://github.com/huggingface/transformers"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.36.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.33.1","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"vllm","old_version":"0.10.0","new_version":"0.10.2","repository_url":"https://github.com/vllm-project/vllm"},{"name":"wrapt","old_version":"1.17.2","new_version":"1.17.3","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"xformers","old_version":"0.0.31.post1","new_version":"0.0.32.post2","repository_url":"https://github.com/facebookresearch/xformers"},{"name":"xgrammar","old_version":"0.1.22","new_version":"0.1.25","repository_url":"https://github.com/mlc-ai/xgrammar"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 53 updates in the /api-server/qna-eval directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [airportsdata](https://github.com/mborsetti/airportsdata) | `20250706` | `20250909` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.13.5` |\n| [blake3](https://github.com/oconnor663/blake3-py) | `1.0.5` | `1.0.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.1.0` | `6.2.0` |\n| [compressed-tensors](https://github.com/neuralmagic/compressed-tensors) | `0.10.2` | `0.11.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.116.1` | `0.117.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.7.0` | `2025.9.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.74.0` | `1.75.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `0.34.4` | `0.35.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.10.0` | `0.11.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [lm-format-enforcer](https://github.com/noamgat/lm-format-enforcer) | `0.11.2` | `0.11.3` |\n| [mistral-common](https://github.com/mistralai/mistral-common) | `1.8.3` | `1.8.5` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.6.3` | `6.6.4` |\n| [nvidia-cudnn-cu12](https://developer.nvidia.com/cuda-zone) | `9.12.0.46` | `9.13.0.50` |\n| [nvidia-ml-py](https://forums.developer.nvidia.com) | `13.580.65` | `13.580.82` |\n| [nvidia-nccl-cu12](https://developer.nvidia.com/cuda-zone) | `2.27.7` | `2.28.3` |\n| [openai](https://github.com/openai/openai-python) | `1.99.6` | `1.108.1` |\n| [outlines](https://github.com/dottxt-ai/outlines) | `1.2.2` | `1.2.5` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.31.1` | `6.32.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [pybind11](https://github.com/pybind/pybind11) | `3.0.0` | `3.0.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.11.9` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.38.0` | `2.39.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.1` | `27.1.0` |\n| [ray](https://github.com/ray-project/ray) | `2.48.0` | `2.49.2` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2025.7.34` | `2025.9.18` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.0` | `0.27.1` |\n| [sentencepiece](https://github.com/google/sentencepiece) | `0.2.0` | `0.2.1` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.3.0.post1` | `7.3.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.2` | `0.48.0` |\n| [textual](https://github.com/Textualize/textual) | `5.3.0` | `6.1.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.21.4` | `0.22.1` |\n| [transformers](https://github.com/huggingface/transformers) | `4.55.0` | `4.56.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.36.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.33.1` | `20.34.0` |\n| [vllm](https://github.com/vllm-project/vllm) | `0.10.0` | `0.10.2` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.2` | `1.17.3` |\n| [xformers](https://github.com/facebookresearch/xformers) | `0.0.31.post1` | `0.0.32.post2` |\n| [xgrammar](https://github.com/mlc-ai/xgrammar) | `0.1.22` | `0.1.25` |\n\n\nUpdates `airportsdata` from 20250706 to 20250909\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mborsetti/airportsdata/releases\"\u003eairportsdata's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20250811\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated IATA for the following 2 airports:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEPSY/SZY, Olsztyn-Mazury Airport, Szymany, Warmia-Mazury, PL: iata added.\u003c/li\u003e\n\u003cli\u003eUCFM/BSZ, Manas International Airport, Bishkek, Chuey, KG: iata changed from \u0026quot;FRU\u0026quot; [effective 09-Aug-2025].\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated other data for the following 11 airports:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLECH/CDT, Castellón Airport, Castellón de la Plana, Comunidad Valenciana, ES: name changed from \u0026quot;Castellongitude de\nla Plana Airport\u0026quot;, subd changed from \u0026quot;Castellón\u0026quot;.\u003c/li\u003e\n\u003cli\u003eLECN    , Castellón De La Plana Airport, Castellón de La Plana, Comunidad Valenciana, ES: name changed from\n\u0026quot;Castellongitude De La Plana Airport\u0026quot;, city changed from \u0026quot;Castellongitude de La Plana\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDBG/BBM, Battambang Airport, Battambang, Battambang, KH: subd added.\u003c/li\u003e\n\u003cli\u003eVDKC    , Kompong Cham Airport, Kompong Cham, Kampong Cham, KH: subd changed from \u0026quot;Kampong-Cham\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDKH/KZC, Kampong Chhnang Airport, , Kampong Chhnang, KH: subd changed from \u0026quot;Kampong-Chhnang\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDKK/KKZ, Kaoh Kong Airport, Kaoh Kong, Koh Kong, KH: subd changed from \u0026quot;Koh-Kong\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDPP/PNH, Phnom Penh International Airport, Phnom Penh, Phnom Penh, KH: subd added.\u003c/li\u003e\n\u003cli\u003eVDSA/SAI, Siem Reap Angkor International Airport, Siem Reap, Siem Reap, KH: subd changed from \u0026quot;Siem-Reap\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDSR    , Angkor International Airport, Siem Reap, Siem Reap, KH: subd changed from \u0026quot;Siem-Reap\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDST/TNX, Stung Treng Airport, Stung Treng, Stung Treng, KH: subd changed from \u0026quot;Stung-Treng\u0026quot;.\u003c/li\u003e\n\u003cli\u003eVDTI/KTI, Techo International Airport, Krong Ta Khmau, Kandal, KH: city changed from \u0026quot;Phnom Penh\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated pre-commit.config.yaml (internal)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mborsetti/airportsdata/blob/main/CHANGELOG.rst\"\u003eairportsdata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion 20250909\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the following 60 airports:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAYAF/AFR, Afore Airstrip, Afore, Oro Province, PG.\u003c/li\u003e\n\u003cli\u003eAYBL/BAA, Bialla Airport, Bialla, West New Britain, PG.\u003c/li\u003e\n\u003cli\u003eAYCG/CGC, Cape Gloucester Airport, Cape Gloucester, West New Britain, PG.\u003c/li\u003e\n\u003cli\u003eAYDA/DAO, Dahamo Airstrip, Dabo, Western, PG.\u003c/li\u003e\n\u003cli\u003eAYDB/DBP, Debepare Airport, Debepare, Western, PG.\u003c/li\u003e\n\u003cli\u003eAYSS/TDS, Sasereme Airport, Sasereme, Western Province, PG.\u003c/li\u003e\n\u003cli\u003eDIAO/ABO, Aboisso Airport, Aboisso, Sud-Comoé, CI.\u003c/li\u003e\n\u003cli\u003eEDGY/KZG, Kitzingen Airport, Kitzingen, Bayern, DE.\u003c/li\u003e\n\u003cli\u003eEDQA/QCB, Bamberg-Breitenau Airfield, Bamberg, Bavaria, DE.\u003c/li\u003e\n\u003cli\u003eFHSH/HLE, Saint Helena Airport, Saint Helena, Saint Helena, SH.\u003c/li\u003e\n\u003cli\u003eFOGA/AKE, Akiéni Airport, Akiéni, Haut-Ogooué, GA.\u003c/li\u003e\n\u003cli\u003eHCAD/AAD, Adado Airport, Adado, Galguduud, SO.\u003c/li\u003e\n\u003cli\u003eLTCU/BGG, Bingöl Airport, Bingöl, Bingöl, TR.\u003c/li\u003e\n\u003cli\u003eMYAG    , Castaway Cay Airport, Castaway Cay, North Abaco, BS.\u003c/li\u003e\n\u003cli\u003eMZPB/DGA, Pelican Beach Airstrip, Dangriga, Stann Creek, BZ.\u003c/li\u003e\n\u003cli\u003eOERS/RSI, Red Sea International Airport, Hanak, Tabuk, SA.\u003c/li\u003e\n\u003cli\u003eOOAD/AOM, Adam Airport, Adam, Ad Dakhiliyah, OM.\u003c/li\u003e\n\u003cli\u003eOPKW/KCF, Kadanwari Airport, Kadanwari, Sindh, PK.\u003c/li\u003e\n\u003cli\u003ePAGN/AGN, Angoon Seaplane Base, Angoon, Alaska, US.\u003c/li\u003e\n\u003cli\u003eRCCM/CMJ, Qimei Airport, Qimei, Penghu, TW.\u003c/li\u003e\n\u003cli\u003eSMEG/EAX, Eduard Alexander Gummels International Airport, Paramaribo, Kwatta, SR.\u003c/li\u003e\n\u003cli\u003eSPGL/CGL, Chagual Airport, Chagual, La Libertad, PE.\u003c/li\u003e\n\u003cli\u003eSWRP    , Teles Pires Lodge, Apiacás, Mato Grosso, BR.\u003c/li\u003e\n\u003cli\u003eUHTG/AEM, Amgu Airport, Amgu, Primorsky Krai, RU.\u003c/li\u003e\n\u003cli\u003eUKBM/MXR, Myrhorod Air Base, Myrhorod, Poltava Oblast, UA.\u003c/li\u003e\n\u003cli\u003eUTAN/BKN, Balkanabat International Airport, Jebel, Balkan, TM.\u003c/li\u003e\n\u003cli\u003eUTTZ/OMN, Zomin Airport, Lyaylyakul, Jizzax, UZ.\u003c/li\u003e\n\u003cli\u003eVEAP/AHA, Maa Mahamaya Airport, Ambikapur, Chhattisgarh, IN.\u003c/li\u003e\n\u003cli\u003eVLFL/PCQ, Boun Neau Airport, Boun Neau, Phongsaly, LA.\u003c/li\u003e\n\u003cli\u003eVLNK/NEU, Nong Khang Airport, Nong Khang, Houaphan, LA.\u003c/li\u003e\n\u003cli\u003eVNRG    , Gulmi Resunga Airport, Resunga, Western-Region, NP.\u003c/li\u003e\n\u003cli\u003eVQGP/GLU, Gelephu Airport, Gelephu, Sarpang, BT.\u003c/li\u003e\n\u003cli\u003eVRNT/TMF, Thimarafushi Airport, Thimarafushi, Thaa, MV.\u003c/li\u003e\n\u003cli\u003eWAGA/GXM, Kuala Kurun, Kuala Kurun, Central Kalimantan, ID.\u003c/li\u003e\n\u003cli\u003eWIJI/KRC, Depati Parbo Airport, Sungai Penuh, Jambi, ID.\u003c/li\u003e\n\u003cli\u003eYPDA/PDN, Parndana Airport, Parndana, South Australia, AU.\u003c/li\u003e\n\u003cli\u003eZBCD/CDE, Chengde Puning Airport, Chengde, Hebei, CN.\u003c/li\u003e\n\u003cli\u003eZBSG/SZH, Shuozhou Zirun Airport, Shuozhou, Shanxi, CN.\u003c/li\u003e\n\u003cli\u003eZGHC/HNI, Hechi Jinchengjiang Airport, Hechi, Guangxi, CN.\u003c/li\u003e\n\u003cli\u003eZGSG/HSC, Shaoguan Guitou Airport, Shaoguan, Guangdong, CN.\u003c/li\u003e\n\u003cli\u003eZHSY/WDS, Shiyan Wudangshan Airport, Shiyan, Hubei, CN.\u003c/li\u003e\n\u003cli\u003eZLDL/HXD, Delingha Airport, Delingha, Qinghai, CN.\u003c/li\u003e\n\u003cli\u003eZMTL/TNZ, Tosontsengel Airport, Tosontsengel, Zavkhan, MN.\u003c/li\u003e\n\u003cli\u003eZSJG/JNG, Jining Da'an Airport, Jining, Shandong, CN.\u003c/li\u003e\n\u003cli\u003eZUDA/DZH, Dazhou Jinya Airport, Dazhou, Sichuan, CN.\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/mborsetti/airportsdata/commit/9be4d37f2b72d49c093f2016e918cdffa1368244\"\u003e\u003ccode\u003e9be4d37\u003c/code\u003e\u003c/a\u003e Version 20250909\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mborsetti/airportsdata/commit/5ffd924c79b17695505d153e53e559b9b51f4e59\"\u003e\u003ccode\u003e5ffd924\u003c/code\u003e\u003c/a\u003e Version 20250908\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mborsetti/airportsdata/commit/b4a698e016a29d9a7d90b5db75e79e3edd6d7983\"\u003e\u003ccode\u003eb4a698e\u003c/code\u003e\u003c/a\u003e Version 20250907\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mborsetti/airportsdata/commit/21cb5670be03c0608edd6ad6a6590acce8850197\"\u003e\u003ccode\u003e21cb567\u003c/code\u003e\u003c/a\u003e Version 20250811\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mborsetti/airportsdata/compare/v20250706...v20250909\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.13.5\n\nUpdates `blake3` from 1.0.5 to 1.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oconnor663/blake3-py/releases\"\u003eblake3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyo3 requirement from 0.24.1 to 0.25.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/70\"\u003eoconnor663/blake3-py#70\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump PyO3/maturin-action from 1.49.1 to 1.49.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/71\"\u003eoconnor663/blake3-py#71\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.2.2 to 2.3.2 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/72\"\u003eoconnor663/blake3-py#72\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MyPy typing complaints on Python 3.8, with regression test by \u003ca href=\"https://github.com/moreati\"\u003e\u003ccode\u003e@​moreati\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/74\"\u003eoconnor663/blake3-py#74\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/moreati\"\u003e\u003ccode\u003e@​moreati\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/pull/74\"\u003eoconnor663/blake3-py#74\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/oconnor663/blake3-py/compare/1.0.5...1.0.6\"\u003ehttps://github.com/oconnor663/blake3-py/compare/1.0.5...1.0.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/65600567c99b298ff6883e9e7bb83539ffb5f71e\"\u003e\u003ccode\u003e6560056\u003c/code\u003e\u003c/a\u003e Bump version to 1.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/62244313e8356f048375ea9b11c01fa94fb1a70e\"\u003e\u003ccode\u003e6224431\u003c/code\u003e\u003c/a\u003e Fix MyPy typing complaints on Python 3.8, with regression test (\u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/issues/74\"\u003e#74\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/068e98814fc7722b71911fbba467876ecc462f2f\"\u003e\u003ccode\u003e068e988\u003c/code\u003e\u003c/a\u003e Bump softprops/action-gh-release from 2.2.2 to 2.3.2 (\u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/issues/72\"\u003e#72\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/0fcb6885e68aabc42b6ec21c53c23aa82aa47358\"\u003e\u003ccode\u003e0fcb688\u003c/code\u003e\u003c/a\u003e Bump PyO3/maturin-action from 1.49.1 to 1.49.3 (\u003ca href=\"https://redirect.github.com/oconnor663/blake3-py/issues/71\"\u003e#71\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/4ee04684ee7e4ecbf5f9edadc2b9a2d2f8114cce\"\u003e\u003ccode\u003e4ee0468\u003c/code\u003e\u003c/a\u003e add dev dependencies on pytest and numpy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/0601f160999b9b9519855e95db2af58048dd71d0\"\u003e\u003ccode\u003e0601f16\u003c/code\u003e\u003c/a\u003e Update pyo3 requirement from 0.24.1 to 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oconnor663/blake3-py/commit/3ea290ac54f5c817150284f0f0b587ba58d5074b\"\u003e\u003ccode\u003e3ea290a\u003c/code\u003e\u003c/a\u003e correct a type annotation in test_blake3.py\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oconnor663/blake3-py/compare/1.0.5...1.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.1.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `compressed-tensors` from 0.10.2 to 0.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/neuralmagic/compressed-tensors/releases\"\u003ecompressed-tensors's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCompressed Tensors v0.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix nightly issues with python 3.11 by \u003ca href=\"https://github.com/dhuangnm\"\u003e\u003ccode\u003e@​dhuangnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/371\"\u003eneuralmagic/compressed-tensors#371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up disk space and restore ubuntu 22.04 runner by \u003ca href=\"https://github.com/dhuangnm\"\u003e\u003ccode\u003e@​dhuangnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/373\"\u003eneuralmagic/compressed-tensors#373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Update tests to use conftest file by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/367\"\u003eneuralmagic/compressed-tensors#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Hadamard Permutations by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/329\"\u003eneuralmagic/compressed-tensors#329\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Construct on GPU, cache on CPU by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/352\"\u003eneuralmagic/compressed-tensors#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eenable code coverage collection and reporting INFERENG-1049 by \u003ca href=\"https://github.com/derekk-nm\"\u003e\u003ccode\u003e@​derekk-nm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/382\"\u003eneuralmagic/compressed-tensors#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eiter_named_leaf_modules\u003c/code\u003e and \u003ccode\u003eiter_named_quantizable_modules\u003c/code\u003e by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/381\"\u003eneuralmagic/compressed-tensors#381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for compression on meta device by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/376\"\u003eneuralmagic/compressed-tensors#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd torch.float64 as a viable dtype for scales by \u003ca href=\"https://github.com/eldarkurtic\"\u003e\u003ccode\u003e@​eldarkurtic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/379\"\u003eneuralmagic/compressed-tensors#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] \u003ccode\u003eapply_transform_config\u003c/code\u003e by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/348\"\u003eneuralmagic/compressed-tensors#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Compression] Fix compression device movement in cases of indexed devices by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/384\"\u003eneuralmagic/compressed-tensors#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable code coverage report for nightly tests by \u003ca href=\"https://github.com/dhuangnm\"\u003e\u003ccode\u003e@​dhuangnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/388\"\u003eneuralmagic/compressed-tensors#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bugfix] Only quant-compress modules with weight quantization by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/387\"\u003eneuralmagic/compressed-tensors#387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Fix config serialization by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/396\"\u003eneuralmagic/compressed-tensors#396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Do not fuse div operation into hadamard matrices by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/395\"\u003eneuralmagic/compressed-tensors#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Implement multi-headed transforms by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/383\"\u003eneuralmagic/compressed-tensors#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport DeepSeekV3-style block FP8 quantization by \u003ca href=\"https://github.com/mgoin\"\u003e\u003ccode\u003e@​mgoin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/372\"\u003eneuralmagic/compressed-tensors#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] [Utils] Canonical matching utilities by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/392\"\u003eneuralmagic/compressed-tensors#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bugfix] Safeguard against submodule parameter deletion in decompress_model by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/347\"\u003eneuralmagic/compressed-tensors#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix block quantization initialization by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/403\"\u003eneuralmagic/compressed-tensors#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Utils] Skip internal modules when matching by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/404\"\u003eneuralmagic/compressed-tensors#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Quantization][Decompression] Fix QDQ for dynamic quant; Update NVFP4 Compression Params by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/407\"\u003eneuralmagic/compressed-tensors#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Utils] Support matching vLLM modules by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/413\"\u003eneuralmagic/compressed-tensors#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix block size inference logic by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/411\"\u003eneuralmagic/compressed-tensors#411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Serialize with tied weights by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/370\"\u003eneuralmagic/compressed-tensors#370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] [Utils] Support precision, add torch dtype validation by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/414\"\u003eneuralmagic/compressed-tensors#414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Serialize transforms config by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/412\"\u003eneuralmagic/compressed-tensors#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eError when configs are created with unrecognized fields by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/386\"\u003eneuralmagic/compressed-tensors#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erevert forbid constraint on QuantizationConfig by \u003ca href=\"https://github.com/brian-dellabetta\"\u003e\u003ccode\u003e@​brian-dellabetta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/418\"\u003eneuralmagic/compressed-tensors#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[Transform] Serialize transforms config (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/412\"\u003e#412\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/419\"\u003eneuralmagic/compressed-tensors#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded wrapper for execution device by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/417\"\u003eneuralmagic/compressed-tensors#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Transform] Serialize config (include format) by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/420\"\u003eneuralmagic/compressed-tensors#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexclude transform_config from quantization_config parse by \u003ca href=\"https://github.com/brian-dellabetta\"\u003e\u003ccode\u003e@​brian-dellabetta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/421\"\u003eneuralmagic/compressed-tensors#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Quantization] Support more than one quant-compressor by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/415\"\u003eneuralmagic/compressed-tensors#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[QuantizationScheme] Validate format by \u003ca href=\"https://github.com/dsikka\"\u003e\u003ccode\u003e@​dsikka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/424\"\u003eneuralmagic/compressed-tensors#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Utils] Expand \u003ccode\u003eis_match\u003c/code\u003e by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/416\"\u003eneuralmagic/compressed-tensors#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix match.py syntax by \u003ca href=\"https://github.com/shanjiaz\"\u003e\u003ccode\u003e@​shanjiaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/426\"\u003eneuralmagic/compressed-tensors#426\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Offload] Fully remove dispatch by \u003ca href=\"https://github.com/kylesayrs\"\u003e\u003ccode\u003e@​kylesayrs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/pull/427\"\u003eneuralmagic/compressed-tensors#427\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/neuralmagic/compressed-tensors/compare/0.10.2...0.11.0\"\u003ehttps://github.com/neuralmagic/compressed-tensors/compare/0.10.2...0.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/b78eb8f6d4081f39f45f50d1284c942d1e66e0c1\"\u003e\u003ccode\u003eb78eb8f\u003c/code\u003e\u003c/a\u003e fully remove dispatch (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/a2bfc03e9d52824ba5d6d2a50c8741dd9bccd5d3\"\u003e\u003ccode\u003ea2bfc03\u003c/code\u003e\u003c/a\u003e fix match.py syntax (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/8a93d260529ceec16585b3c809924c65c54a28b3\"\u003e\u003ccode\u003e8a93d26\u003c/code\u003e\u003c/a\u003e expand is_match (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/05e00e4302abd45b695eb1a45981ae40a7de122a\"\u003e\u003ccode\u003e05e00e4\u003c/code\u003e\u003c/a\u003e add validation check on format (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/424\"\u003e#424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/fac7e4a8bf693bfd85c6e2b0326d48ac68a6c896\"\u003e\u003ccode\u003efac7e4a\u003c/code\u003e\u003c/a\u003e [Quantization] Support more than one quant-compressor (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/33c52def62ac44647fe924a05ed5115abfb0fdfd\"\u003e\u003ccode\u003e33c52de\u003c/code\u003e\u003c/a\u003e exclude transform_config from quantization_config parse (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/c1f0c2506eb0258c21b7ee2a9b34b71527302d33\"\u003e\u003ccode\u003ec1f0c25\u003c/code\u003e\u003c/a\u003e [Transform] Serialize config (include format) (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/364472a9f54001bc6edaf6a2d6e910a54ecda188\"\u003e\u003ccode\u003e364472a\u003c/code\u003e\u003c/a\u003e added wrapper for execution device (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/2154c62bdb77a1c6e6e06cc5e0e3ea25d2b614aa\"\u003e\u003ccode\u003e2154c62\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[Transform] Serialize transforms config (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/412\"\u003e#412\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neuralmagic/compressed-tensors/commit/de945c644d2eb13fb3eaf85ab309085871bec35a\"\u003e\u003ccode\u003ede945c6\u003c/code\u003e\u003c/a\u003e revert forbid constraint on QuantizationConfig (\u003ca href=\"https://redirect.github.com/neuralmagic/compressed-tensors/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/neuralmagic/compressed-tensors/compare/0.10.2...0.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `executing` from 2.2.0 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bafb305d96572bc8fb668b6564787bbb4fff2809\"\u003e\u003ccode\u003ebafb305\u003c/code\u003e\u003c/a\u003e Add 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/5ed2ba36c2df94c91fefabd919880ffe061dc0f2\"\u003e\u003ccode\u003e5ed2ba3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexmojaki/executing/issues/97\"\u003e#97\u003c/a\u003e from alexmojaki/3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/28095d447af50c49e154de5a27b9423611462f3d\"\u003e\u003ccode\u003e28095d4\u003c/code\u003e\u003c/a\u003e refactor: review changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bb09dc677da7988a2c9555878b3727afa995b2c0\"\u003e\u003ccode\u003ebb09dc6\u003c/code\u003e\u003c/a\u003e refactor: some cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/dabc70ef5cc9a45eb57432822cdcf674af2e1db8\"\u003e\u003ccode\u003edabc70e\u003c/code\u003e\u003c/a\u003e fix: inst.argval can be a tuple for sometimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/0772f918c432d6451594bcb6ffccba62e32e794c\"\u003e\u003ccode\u003e0772f91\u003c/code\u003e\u003c/a\u003e fix: removed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bacc5b699405e6f27d882dd2a71bb0ec30167f37\"\u003e\u003ccode\u003ebacc5b6\u003c/code\u003e\u003c/a\u003e fix: moved verification for CALL_INTRINSIC_2 back to 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/ec090751a1645cd14bfcb20a79b02371ffd6172b\"\u003e\u003ccode\u003eec09075\u003c/code\u003e\u003c/a\u003e test: added sample_results for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/9405fed0769af3ee22dd4f433249f6494688638e\"\u003e\u003ccode\u003e9405fed\u003c/code\u003e\u003c/a\u003e fix: handle synthetic code to store annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/f09e4cd194aa3480c12a9f5afab3524d2a7222f2\"\u003e\u003ccode\u003ef09e4cd\u003c/code\u003e\u003c/a\u003e fix: TypeVar defaults\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexmojaki/executing/compare/v2.2.0...v2.2.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.116.1 to 0.117.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.117.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11194\"\u003e#11194\u003c/a\u003e by \u003ca href=\"https://github.com/thomasleveil\"\u003e\u003ccode\u003e@​thomasleveil\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9425\"\u003e#9425\u003c/a\u003e by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow array values for OpenAPI schema \u003ccode\u003etype\u003c/code\u003e field. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13639\"\u003e#13639\u003c/a\u003e by \u003ca href=\"https://github.com/sammasak\"\u003e\u003ccode\u003e@​sammasak\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add OpenAPI \u003ccode\u003eexternal_docs\u003c/code\u003e parameter to \u003ccode\u003eFastAPI\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13713\"\u003e#13713\u003c/a\u003e by \u003ca href=\"https://github.com/cmtoro\"\u003e\u003ccode\u003e@​cmtoro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9704\"\u003e#9704\u003c/a\u003e by \u003ca href=\"https://github.com/vvanglro\"\u003e\u003ccode\u003e@​vvanglro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/6039\"\u003e#6039\u003c/a\u003e by \u003ca href=\"https://github.com/MaxwellPayne\"\u003e\u003ccode\u003e@​MaxwellPayne\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003ejsonable_encoder\u003c/code\u003e alters \u003ccode\u003ejson_encoders\u003c/code\u003e of Pydantic v1 objects. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/4972\"\u003e#4972\u003c/a\u003e by \u003ca href=\"https://github.com/aboubacs\"\u003e\u003ccode\u003e@​aboubacs\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Reenable \u003ccode\u003eallow_arbitrary_types\u003c/code\u003e when only 1 argument is used on the API endpoint. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13694\"\u003e#13694\u003c/a\u003e by \u003ca href=\"https://github.com/rmawatson\"\u003e\u003ccode\u003e@​rmawatson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003einspect.getcoroutinefunction()\u003c/code\u003e can break testing with \u003ccode\u003eunittest.mock.patch()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14022\"\u003e#14022\u003c/a\u003e by \u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Create \u003ccode\u003edependency-cache\u003c/code\u003e dict in \u003ccode\u003esolve_dependencies\u003c/code\u003e only if \u003ccode\u003eNone\u003c/code\u003e (don't re-create if empty). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13689\"\u003e#13689\u003c/a\u003e by \u003ca href=\"https://github.com/bokshitsky\"\u003e\u003ccode\u003e@​bokshitsky\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Enable test case for duplicated headers in \u003ccode\u003etest_tutorial/test_header_params/test_tutorial003.py\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13864\"\u003e#13864\u003c/a\u003e by \u003ca href=\"https://github.com/Amogha-ark\"\u003e\u003ccode\u003e@​Amogha-ark\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📌 Pin \u003ccode\u003ehttpx\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.23.0,\u0026lt;1.0.0\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14086\"\u003e#14086\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\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add note about Cookies and JavaScript on \u003ccode\u003etutorial/cookie-params.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13510\"\u003e#13510\u003c/a\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove outdated formatting from \u003ccode\u003epath-params-numeric-validations.md\u003c/code\u003e for languages \u003ccode\u003een\u003c/code\u003e, \u003ccode\u003ees\u003c/code\u003e and \u003ccode\u003euk\u003c/code\u003e.. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14059\"\u003e#14059\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix and Improve English Documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14048\"\u003e#14048\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update prompts and German translation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14015\"\u003e#14015\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Simplify tests for response_model. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14062\"\u003e#14062\u003c/a\u003e by \u003ca href=\"https://github.com/dynamicy\"\u003e\u003ccode\u003e@​dynamicy\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🚨 Install pydantic.mypy plugin. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14081\"\u003e#14081\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add LLM test file. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14049\"\u003e#14049\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update translations script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13968\"\u003e#13968\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🛠️ Update \u003ccode\u003edocs.py generate-readme\u003c/code\u003e command to remove permalinks from headers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14055\"\u003e#14055\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update mypy to 1.14.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12970\"\u003e#12970\u003c/a\u003e by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.116.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade Starlette supported version range to \u0026gt;=0.40.0,\u0026lt;0.49.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14077\"\u003e#14077\u003c/a\u003e by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\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/784f06cb9b7cc63f6a0cb2bc9cf238473eef93e2\"\u003e\u003ccode\u003e784f06c\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.117.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b5c05893b4c43c93ff94761270ea750c0bd9e30e\"\u003e\u003ccode\u003eb5c0589\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/44fc67632bcdae4d078cb11b1a319ac122cbb06f\"\u003e\u003ccode\u003e44fc676\u003c/code\u003e\u003c/a\u003e 🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/11194\"\u003e#11194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a84001000e59ff362e74f93b8d9a58a4309dac2d\"\u003e\u003ccode\u003ea840010\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/382d083e26a28e95c731e85345c85c6dc99b08b4\"\u003e\u003ccode\u003e382d083\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.117.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a7f2dbe976bf72703376f0cd04487bfc4a849f83\"\u003e\u003ccode\u003ea7f2dbe\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f1e6f978ce10a6f9b4c668350a79462e9ac330a8\"\u003e\u003ccode\u003ef1e6f97\u003c/code\u003e\u003c/a\u003e ⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9704\"\u003e#9704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b01d5c97a09b8f4f95b9e9b0d6bc083a23cdea20\"\u003e\u003ccode\u003eb01d5c9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b51ec36f2e442495de5e4c22ae51a8f5c44917eb\"\u003e\u003ccode\u003eb51ec36\u003c/code\u003e\u003c/a\u003e ✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9425\"\u003e#9425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0bdc3ca3732e3742e094bea2b320e9774659ac38\"\u003e\u003ccode\u003e0bdc3ca\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.116.1...0.117.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastjsonschema` from 2.21.1 to 2.21.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fsspec` from 2025.7.0 to 2025.9.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/f84b99f0d1f079f990db1a219b74df66ab3e7160\"\u003e\u003ccode\u003ef84b99f\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/4e5f7686874953e9130891feb2fac69277ab4ad1\"\u003e\u003ccode\u003e4e5f768\u003c/code\u003e\u003c/a\u003e Feature, Add a lookup of Last-Modified in http file headers (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1909\"\u003e#1909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/cf798ec684e0583906dda1ae6ff40de620c01eca\"\u003e\u003ccode\u003ecf798ec\u003c/code\u003e\u003c/a\u003e Add semaphore to AsyncFileSystemWrapper (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1908\"\u003e#1908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/c46db870f828f7f1318ed7a3dc26ecc8b48b3880\"\u003e\u003ccode\u003ec46db87\u003c/code\u003e\u003c/a\u003e Ensure cached filesystems' \u003ccode\u003eprotocol\u003c/code\u003e is preserved (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1897\"\u003e#1897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/d0b1729a522ff9a47bd465bdbe430cdccfc302e2\"\u003e\u003ccode\u003ed0b1729\u003c/code\u003e\u003c/a\u003e Prevent returning cached entry if the entry is degenerate (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1873\"\u003e#1873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/81a5fd53cb17c3c1fffb9661d1563ea2d62b6d71\"\u003e\u003ccode\u003e81a5fd5\u003c/code\u003e\u003c/a\u003e PEP 639 compliance (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1894\"\u003e#1894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/1918145a02abfb647fcbde40fbfdfe0311a399d6\"\u003e\u003ccode\u003e1918145\u003c/code\u003e\u003c/a\u003e fix simplecache cat_ranges (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1892\"\u003e#1892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fsspec/filesystem_spec/compare/2025.7.0...2025.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.74.0 to 1.75.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.75.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.75.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egemini\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Security] Cherry Pick Spiffe Verification. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40515\"\u003e#40515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python][Typeguard] Part 3 - Add Typeguard to AIO stack in tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40217\"\u003e#40217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[c-ares] update version to 1.34.5. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39508\"\u003e#39508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pick_first] fix bug that caused us to stop attempting to connect. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40162\"\u003e#40162\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[OTel C++] Implement retry metrics. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39195\"\u003e#39195\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix data race by adding custom getter for \u003ccode\u003estate\u003c/code\u003e property with \u003ccode\u003e@synchronized\u003c/code\u003e locking. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40146\"\u003e#40146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egRPC Python (grpcio) now depends on \u003ccode\u003etyping-extensions~=4.13\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40137\"\u003e#40137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate musllinux wheels from \u003ccode\u003emusllinux_1_1\u003c/code\u003e to \u003ccode\u003emusllinux_1_2\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40317\"\u003e#40317\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eDropping \u003ccode\u003emusllinux_1_1\u003c/code\u003e because it reached EOL in November 2024\u003c/li\u003e\n\u003cli\u003eReference on musllinux platform tags: \u003ca href=\"https://peps.python.org/pep-0656\"\u003ePEP 656\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egrpc.aio\u003c/code\u003e typehint fixes. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40215\"\u003e#40215\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40217\"\u003e#40217\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eFixes type hints for \u003ccode\u003egrpc.aio._utils\u003c/code\u003e, \u003ccode\u003egrpc.aio._call\u003c/code\u003e, \u003ccode\u003egrpc.aio._interceptor\u003c/code\u003e and \u003ccode\u003egrpc.aio._utils\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixing the error in public API: \u003ccode\u003eClientCallDetails.method\u003c/code\u003e was declared as \u003ccode\u003estr\u003c/code\u003e but always called with \u003ccode\u003ebytes\u003c/code\u003e, see \u003ca href=\"https://github.com/grpc/grpc/blob/49bc1b1098f3772b40a46325250fe5c6f4df1eeb/src/python/grpcio/grpc/aio/_interceptor.py#L628\"\u003eInterceptedUnaryUnaryCall\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixes issue \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40325\"\u003e#40325\u003c/a\u003e with grpcio failing to install on all non-Mac Apple devices internal builds. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40347\"\u003e#40347\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRuby\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby: Mark credential object in channel. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40394\"\u003e#40394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Ruby] Add rubygems support for linux-gnu and linux-musl platforms. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39549\"\u003e#39549\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease v1.75.0-pre1\u003c/h2\u003e\n\u003cp\u003eThis is a prerelease of gRPC Core 1.75.0 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis prerelease contains refinements, improvements, and bug fixes.\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/grpc/grpc/commit/093085cc925e0d5aa6e92bc29e917f9bdc00add2\"\u003e\u003ccode\u003e093085c\u003c/code\u003e\u003c/a\u003e [build] Fix objc boringssl build backport (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40689\"\u003e#40689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/8c4561390682661cc8cb374ec734bc1d742ad88f\"\u003e\u003ccode\u003e8c45613\u003c/code\u003e\u003c/a\u003e [release] Bump release version on v1.75.x branch to v1.75.0 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40644\"\u003e#40644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/d382f40fc0f6cb522cb81f2e9ac111621687c598\"\u003e\u003ccode\u003ed382f40\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python][Support 3.14] Enable Python 3.14 interpreters for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e6db4753b460db05f69883ca73191587a4732976\"\u003e\u003ccode\u003ee6db475\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Build manylinux aarch64 without cross-compilation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/77dc9c8c2595b2d4c031dfa58a4174ea33105908\"\u003e\u003ccode\u003e77dc9c8\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Updating rules_python to 1.5.4 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40607\"\u003e#40607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/8f360868932daaa226de0aaaab8f2d7f524d1ddc\"\u003e\u003ccode\u003e8f36086\u003c/code\u003e\u003c/a\u003e [Security] Cherry Pick Spiffe Verification (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40515\"\u003e#40515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/5b393ee09ce97d9d328503ae8d96c65a42f9fff5\"\u003e\u003ccode\u003e5b393ee\u003c/code\u003e\u003c/a\u003e [release] Bump release version on v1.75.x to v1.75.0-pre1 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40485\"\u003e#40485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e8715ed185a885d14472ad7c6cdc83d4161be029\"\u003e\u003ccode\u003ee8715ed\u003c/code\u003e\u003c/a\u003e Bump core version to 50.0.0 for upcoming release (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40422\"\u003e#40422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/509f9fb6762b68505af3f854555ae86305be3c60\"\u003e\u003ccode\u003e509f9fb\u003c/code\u003e\u003c/a\u003e [PH2] WritePath Integration (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40404\"\u003e#40404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/8a66132dc88c624ccba64883f2d643885dc0d08c\"\u003e\u003ccode\u003e8a66132\u003c/code\u003e\u003c/a\u003e [PH2][Settings] Adding documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.74.0...v1.75.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 0.34.4 to 0.35.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v0.35.0] Announcing Scheduled Jobs: run cron jobs on GPU on the Hugging Face Hub!\u003c/h2\u003e\n\u003ch2\u003eScheduled Jobs\u003c/h2\u003e\n\u003cp\u003eIn \u003ca href=\"https://github.com/huggingface/huggingface_hub/releases/tag/v0.34.0\"\u003ev0.34.0 release\u003c/a\u003e, we announced Jobs, a new way to run compute on the Hugging Face Hub. In this new release, we are announcing \u003cstrong\u003eScheduled Jobs\u003c/strong\u003e to run Jobs on a regular basic. Think \u0026quot;cron jobs running on GPU\u0026quot;.\u003c/p\u003e\n\u003cp\u003eThis comes with a fully-fledge CLI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehf jobs scheduled run @hourly ubuntu echo hello world\nhf jobs scheduled run \u0026quot;0 * * * *\u0026quot; ubuntu echo hello world\nhf jobs scheduled ps -a\nhf jobs scheduled inspect \u0026lt;id\u0026gt;\nhf jobs scheduled delete \u0026lt;id\u0026gt;\nhf jobs scheduled suspend \u0026lt;id\u0026gt;\nhf jobs scheduled resume \u0026lt;id\u0026gt;\nhf jobs scheduled uv run @weekly train.py\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Add scheduled jobs api  by \u003ca href=\"https://github.com/lhoestq\"\u003e\u003ccode\u003e@​lhoestq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3306\"\u003e#3306\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIt is now possible to run a command with \u003ccode\u003euv run\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehf jobs uv run --with lighteval -s HF_TOKEN lighteval endpoint inference-providers \u0026quot;model_name=openai/gpt-oss-20b,provider=groq\u0026quot; \u0026quot;lighteval|gsm8k|0|0\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Support commands in \u003ccode\u003ehf jobs uv run\u003c/code\u003e  by \u003ca href=\"https://github.com/lhoestq\"\u003e\u003ccode\u003e@​lhoestq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3303\"\u003e#3303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSome other improvements have been added to the existing Jobs API for a better UX.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Jobs] Use current or stored token in a Job secrets  by \u003ca href=\"https://github.com/lhoestq\"\u003e\u003ccode\u003e@​lhoestq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3272\"\u003e#3272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate uv image  by \u003ca href=\"https://github.com/lhoestq\"\u003e\u003ccode\u003e@​lhoestq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3270\"\u003e#3270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAnd finally, Jobs documentation has been updated with new examples (and some fixes):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix bash history expansion in hf jobs example  by \u003ca href=\"https://github.com/nyuuzyou\"\u003e\u003ccode\u003e@​nyuuzyou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3277\"\u003e#3277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd timeout info to Jobs guide docs  by \u003ca href=\"https://github.com/davanstrien\"\u003e\u003ccode\u003e@​davanstrien\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3281\"\u003e#3281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jobs.md  by \u003ca href=\"https://github.com/tre3x\"\u003e\u003ccode\u003e@​tre3x\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3297\"\u003e#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add link to uv-scripts organization in Jobs guide  by \u003ca href=\"https://github.com/davanstrien\"\u003e\u003ccode\u003e@​davanstrien\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3326\"\u003e#3326\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add Docker images section for UV scripts in Jobs guide  by \u003ca href=\"https://github.com/davanstrien\"\u003e\u003ccode\u003e@​davanstrien\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3327\"\u003e#3327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add link to TRL jobs training documentation  by \u003ca href=\"https://github.com/davanstrien\"\u003e\u003ccode\u003e@​davanstrien\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3330\"\u003e#3330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCLI updates\u003c/h2\u003e\n\u003cp\u003eIn addition to the Scheduled Jobs, some improvements have been added to the \u003ccode\u003ehf\u003c/code\u003e CLI.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] print help if no command provided  by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3262\"\u003e#3262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate hf auth whoami output  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/3274\"\u003e#3274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 'user:' prefix to whoami command output for consistency  by \u003ca href=\"https://github.com/gary149\"\u003e\u003ccode\u003e@​gary149\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3267\"\u003e#3267\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/0f12365eb66305b280a7a3b65c48faf9f24f8c20\"\u003e\u003ccode\u003e0f12365\u003c/code\u003e\u003c/a\u003e Release: v0.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/041c05e1735057d4a527eee14109f32678f087e3\"\u003e\u003ccode\u003e041c05e\u003c/code\u003e\u003c/a\u003e Release: v0.35.0.rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/69874aee426afb54dfadd6de0ec1924462be0400\"\u003e\u003ccode\u003e69874ae\u003c/code\u003e\u003c/a\u003e Add PublicAI provider (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3367\"\u003e#3367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/6faf2d72ca9a9efe259c79588ccef7add0d5093a\"\u003e\u003ccode\u003e6faf2d7\u003c/code\u003e\u003c/a\u003e feat: add scaleway inference provider (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3356\"\u003e#3356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/490865e0c693bbe9ac297a7b3ddc0f6f10e7bc8d\"\u003e\u003ccode\u003e490865e\u003c/code\u003e\u003c/a\u003e docs: minor typo fix in /en/guides/manage-cache (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3353\"\u003e#3353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/92351f3fde4105f5e76fe9a32d1944a1149afbc2\"\u003e\u003ccode\u003e92351f3\u003c/code\u003e\u003c/a\u003e Return early in \u003ccode\u003eis_jsonable\u003c/code\u003e if circular reference (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3348\"\u003e#3348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/22d9c553f3548a71caf1a8b8265cb3f80f06ea80\"\u003e\u003ccode\u003e22d9c55\u003c/code\u003e\u003c/a\u003e Add reasoning field in chat completion output (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3338\"\u003e#3338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/6378f83ca85a615dc9f1a3ea6e362c8c97245a88\"\u003e\u003ccode\u003e6378f83\u003c/code\u003e\u003c/a\u003e Update error message to improve shell compatibility (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3333\"\u003e#3333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/8a6d4e3e8d18c7ba4ecf8b2e9a23138e48257330\"\u003e\u003ccode\u003e8a6d4e3\u003c/code\u003e\u003c/a\u003e docs: add link to TRL jobs training documentation (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3330\"\u003e#3330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/a8a38a523e91999a6785f4bcb7c4b2d772686e9a\"\u003e\u003ccode\u003ea8a38a5\u003c/code\u003e\u003c/a\u003e [Jobs] Add scheduled jobs api (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/3306\"\u003e#3306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v0.34.4...v0.35.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jiter` from 0.10.0 to 0.11.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/a0907638427b307d1bf22ff080e002d961f905d7\"\u003e\u003ccode\u003ea090763\u003c/code\u003e\u003c/a\u003e release: 0.11.0 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/220\"\u003e#220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/69fc9cbeb4d819db3ba21862306c666db42a69bb\"\u003e\u003ccode\u003e69fc9cb\u003c/code\u003e\u003c/a\u003e update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/d60dc160ed9c767d450c6c084129ea414795822c\"\u003e\u003ccode\u003ed60dc16\u003c/code\u003e\u003c/a\u003e allow \u003ccode\u003epython_parse\u003c/code\u003e to take ref to self (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/42694169c5ffa5cefcd55884097f6256d1dc94af\"\u003e\u003ccode\u003e4269416\u003c/code\u003e\u003c/a\u003e Fix linux-x86_64 build matrix (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/215\"\u003e#215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/9c3d0a5856e80fd41ecaf359925a3bca1eccaf70\"\u003e\u003ccode\u003e9c3d0a5\u003c/code\u003e\u003c/a\u003e Trailing bytes partial mode (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/211\"\u003e#211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/2f89404cce89a5d4eda593556830f3983ab4b8a0\"\u003e\u003ccode\u003e2f89404\u003c/code\u003e\u003c/a\u003e Build wheels for GraalPy (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/15cdc69e617a29658ea6b85d29b2c2a789a10951\"\u003e\u003ccode\u003e15cdc69\u003c/code\u003e\u003c/a\u003e fix lint reported in Rust 1.89 (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/213\"\u003e#213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/a05dc811fd5f0ac64e0e90e4fe4a295c4ddb7751\"\u003e\u003ccode\u003ea05dc81\u003c/code\u003e\u003c/a\u003e Keep strings before incomplete escape sequences in partial mode (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/e6b28c2c44eb4ad4d805bdbad1d93b66135e69ce\"\u003e\u003ccode\u003ee6b28c2\u003c/code\u003e\u003c/a\u003e Set up criterion for benchmarking (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/197\"\u003e#197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/jiter/commit/961d830d95bf89fbec59528d5d4233fd2427ed60\"\u003e\u003ccode\u003e961d830\u003c/code\u003e\u003c/a\u003e Impl \u003ccode\u003estd::error::Error\u003c/code\u003e for error types (\u003ca href=\"https://redirect.github.com/pydantic/jiter/issues/205\"\u003e#205\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/jiter/compare/v0.10.0...v0.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.25.0 to 4.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidator\u003c/code\u003e protocol init to match runtime by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1396\"\u003epython-jsonschema/jsonschema#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.25.0...v4.25.1\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.25.0...v4.25.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/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.25.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix an incorrect required argument in the \u003ccode\u003eValidator\u003c/code\u003e protocol's type annotations (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1396\"\u003e#1396\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/331c38425519b69118d22ebe467ad230fb83a010\"\u003e\u003ccode\u003e331c384\u003c/code\u003e\u003c/a\u003e Add the fix to the changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/c1ec0a645e913e83de95995f6efbbd358676abf6\"\u003e\u003ccode\u003ec1ec0a6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1398\"\u003e#1398\u003c/a\u003e from python-jsonschema/dependabot/github_actions/ast...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/8e7d594faff13f8f663b306a0d86bea0ce5de6cb\"\u003e\u003ccode\u003e8e7d594\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1399\"\u003e#1399\u003c/a\u003e from python-jsonschema/dependabot/github_actions/act...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/460f4fae42664773160f56ccc843a4fcea34f7cf\"\u003e\u003ccode\u003e460f4fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1396\"\u003e#1396\u003c/a\u003e from sirosen/improve-protocol-init-signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1e58409b71a9696b7bf9938ae8a3a48ef95ab29e\"\u003e\u003ccode\u003e1e58409\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/64bc2171624ef201bdbf35e47780348ce30935c5\"\u003e\u003ccode\u003e64bc217\u003c/code\u003e\u003c/a\u003e Add a typing test for the Validator protocol\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6c25741bff889477680f9b0d1aa967ae35c38f43\"\u003e\u003ccode\u003e6c25741\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/bf603d59117f840916709fc87c6625df43d1fe72\"\u003e\u003ccode\u003ebf603d5\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 6.4.3 to 6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/a916d8f8253baa11bacc60f0868f0bab1e42d526\"\u003e\u003ccode\u003ea916d8f\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidator\u003c/code\u003e protocol init to match runtime\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/de60f18bd97395a52a11b561eb62963e0ffe9e71\"\u003e\u003ccode\u003ede60f18\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1397\"\u003e#1397\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.25.0...v4.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema-specifications` from 2025.4.1 to 2025....\n\n_Description has been truncated_","html_url":"https://github.com/instructlab/ui/pull/966","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/instructlab%2Fui/issues/966","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/966/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-09-15T18:55:13.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2830305741","node_id":"PR_kwDOG7qlY86oswnN","number":73,"state":"open","title":"Bump the pip group with 39 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T18:55:13.000Z","updated_at":"2025-09-15T18:55:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":39,"packages":[{"name":"google-cloud-bigquery","old_version":"3.36.0","new_version":"3.37.0","repository_url":"https://github.com/googleapis/python-bigquery"},{"name":"google-cloud-bigquery-storage","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/googleapis/python-bigquery-storage"},{"name":"dataverk-airflow","old_version":"1.8.0","new_version":"1.8.1","repository_url":"https://github.com/navikt/dataverk-airflow"},{"name":"ruff","old_version":"0.12.12","new_version":"0.13.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"anyio","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.13.5"},{"name":"cachetools","old_version":"5.5.2","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.16","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"grpcio","old_version":"1.73.1","new_version":"1.74.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.71.2","new_version":"1.74.0"},{"name":"ipykernel","old_version":"6.29.5","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"9.4.0","new_version":"9.5.0","repository_url":"https://github.com/ipython/ipython"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"numpy","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/numpy/numpy"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.32.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip group with 39 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-cloud-bigquery](https://github.com/googleapis/python-bigquery) | `3.36.0` | `3.37.0` |\n| [google-cloud-bigquery-storage](https://github.com/googleapis/python-bigquery-storage) | `2.33.0` | `2.33.1` |\n| [dataverk-airflow](https://github.com/navikt/dataverk-airflow) | `1.8.0` | `1.8.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.12` | `0.13.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.10.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.13.5` |\n| [cachetools](https://github.com/tkem/cachetools) | `5.5.2` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.7` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.16` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [grpcio](https://github.com/grpc/grpc) | `1.73.1` | `1.74.0` |\n| [grpcio-status](https://grpc.io) | `1.71.2` | `1.74.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `6.30.1` |\n| [ipython](https://github.com/ipython/ipython) | `9.4.0` | `9.5.0` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.1` | `2.3.3` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.32.1` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20250822` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n\nUpdates `google-cloud-bigquery` from 3.36.0 to 3.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery/releases\"\u003egoogle-cloud-bigquery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.37.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003e3.37.0\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003eef2740a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e33ea296\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean that the job has not completed or was unsuccessful (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2278\"\u003e#2278\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e6e88d7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e8a13c12\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery/blob/main/CHANGELOG.md\"\u003egoogle-cloud-bigquery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003e3.37.0\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003eef2740a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e33ea296\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean that the job has not completed or was unsuccessful (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2278\"\u003e#2278\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e6e88d7d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e8a13c12\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/googleapis/python-bigquery/commit/4b0ef0cfcf7def138e43a22223abfcbefc330da2\"\u003e\u003ccode\u003e4b0ef0c\u003c/code\u003e\u003c/a\u003e chore(main): release 3.37.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2269\"\u003e#2269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/6e88d7dbe42ebfc35986da665d656b49ac481db4\"\u003e\u003ccode\u003e6e88d7d\u003c/code\u003e\u003c/a\u003e docs: clarify that the presence of \u003ccode\u003eXyzJob.errors\u003c/code\u003e  doesn't necessarily mean ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/33ea29616c06a2e2a106a785d216e784737ae386\"\u003e\u003ccode\u003e33ea296\u003c/code\u003e\u003c/a\u003e fix: remove deepcopy while setting properties for _QueryResults (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2280\"\u003e#2280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/8a13c12905ffcb3dbb6086a61df37556f0c2cd31\"\u003e\u003ccode\u003e8a13c12\u003c/code\u003e\u003c/a\u003e docs: clarify the api_method arg for client.query() (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2277\"\u003e#2277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/435ecdb62d8402fea317763e48934fa510ce8026\"\u003e\u003ccode\u003e435ecdb\u003c/code\u003e\u003c/a\u003e bug: updates \u003ccode\u003e__eq__\u003c/code\u003e comparison on TableConstraint (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2274\"\u003e#2274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/43527af24e56994357205b482a86b805950d2d0f\"\u003e\u003ccode\u003e43527af\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2259\"\u003e#2259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery/commit/ef2740a158199633b5543a7b6eb19587580792cd\"\u003e\u003ccode\u003eef2740a\u003c/code\u003e\u003c/a\u003e feat: updates to fastpath query execution (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery/issues/2268\"\u003e#2268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery/compare/v3.36.0...v3.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-bigquery-storage` from 2.33.0 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/releases\"\u003egoogle-cloud-bigquery-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003e2.33.1\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Exclude google-auth 2.24.0 and 2.25.0 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/blob/v2.33.1/CHANGELOG.md\"\u003egoogle-cloud-bigquery-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003e2.33.1\u003c/a\u003e (2025-09-08)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Exclude google-auth 2.24.0 and 2.25.0 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e Require proto-plus \u0026gt;= 1.22.3 (\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e5b60dd4\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/googleapis/python-bigquery-storage/commit/a7d9c212c76dc3f132f7899149a499d6790a7149\"\u003e\u003ccode\u003ea7d9c21\u003c/code\u003e\u003c/a\u003e chore(main): release 2.33.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/8170d3d84e4c0ae68b93902378e95b050543a739\"\u003e\u003ccode\u003e8170d3d\u003c/code\u003e\u003c/a\u003e chore: remove redundant code (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/979\"\u003e#979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/5b60dd4ebf838f08e382cac12a6c84e1e0286862\"\u003e\u003ccode\u003e5b60dd4\u003c/code\u003e\u003c/a\u003e fix(deps): require google-api-core \u0026gt;= 1.34.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/978\"\u003e#978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/2a6daa16a5a6fe76901084748f909eba3ffb4c30\"\u003e\u003ccode\u003e2a6daa1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/977\"\u003e#977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-bigquery-storage/commit/fa7c6b2b6700f25502605e67ae177ef11c49d868\"\u003e\u003ccode\u003efa7c6b2\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-bigquery-storage/issues/974\"\u003e#974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-bigquery-storage/compare/v2.33.0...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dataverk-airflow` from 1.8.0 to 1.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/navikt/dataverk-airflow/releases\"\u003edataverk-airflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump the gh group across 1 directory with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/pull/136\"\u003enavikt/dataverk-airflow#136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\"\u003ehttps://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/232348f77a9e6b4a68aafcc5200970a53b43d53c\"\u003e\u003ccode\u003e232348f\u003c/code\u003e\u003c/a\u003e handle empty args list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/78c476ea1aa4c966ba48238bca613be94335e157\"\u003e\u003ccode\u003e78c476e\u003c/code\u003e\u003c/a\u003e pass entrypoint arg from parent operators to underlying kubernetes_operator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/d26188af992f55ee60e29ae1612faec15fca45a8\"\u003e\u003ccode\u003ed26188a\u003c/code\u003e\u003c/a\u003e evaluate correct prop in test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/7f4a6d1d3c67f3bd8eb611eeaa84b434b0212796\"\u003e\u003ccode\u003e7f4a6d1\u003c/code\u003e\u003c/a\u003e remove deprecated python version from available versions + evaluate correct p...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/97d902a1b858fe78c9d81f45e63b9e3ded64466c\"\u003e\u003ccode\u003e97d902a\u003c/code\u003e\u003c/a\u003e fix: default value for cmds arg to kubernetes_operator can be empty list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/49749ea6c2f3f6f0a96484284b4be98c9eb601f3\"\u003e\u003ccode\u003e49749ea\u003c/code\u003e\u003c/a\u003e add test for overriding container command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/dd48795f5b3f0f3b986188acfa1ace4a21d93a50\"\u003e\u003ccode\u003edd48795\u003c/code\u003e\u003c/a\u003e argument order for tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/60bf0dd448d3a27c6761589e0b0129be146f3bb5\"\u003e\u003ccode\u003e60bf0dd\u003c/code\u003e\u003c/a\u003e configurable container command for kubernetes_operator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/765c8068852dc418e7f8a5d469c1a4885f800eeb\"\u003e\u003ccode\u003e765c806\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/issues/136\"\u003e#136\u003c/a\u003e from navikt/dependabot/github_actions/\u003ca href=\"https://redirect.github.com/navikt/dataverk-airflow/issues/3272707161\"\u003egh-3272707161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/navikt/dataverk-airflow/commit/029e79758f48540167dc971ff8619be6328df8c5\"\u003e\u003ccode\u003e029e797\u003c/code\u003e\u003c/a\u003e build(deps): bump the gh group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/navikt/dataverk-airflow/compare/1.8.0...1.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.12 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.0\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eCheck out the \u003ca href=\"https://astral.sh/blog/ruff-v0.13.0\"\u003eblog post\u003c/a\u003e for a migration guide and overview of the changes!\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSeveral rules can now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e, \u003ccode\u003eRUF013\u003c/code\u003e, and \u003ccode\u003eUP037\u003c/code\u003e now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e as part of their fixes when the \u003ccode\u003elint.future-annotations\u003c/code\u003e setting is enabled. This allows the rules to move more imports into \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, and \u003ccode\u003eTC003\u003c/code\u003e), use PEP 604 union syntax on Python versions before 3.10 (\u003ccode\u003eRUF013\u003c/code\u003e), and unquote more annotations (\u003ccode\u003eUP037\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFull module paths are now used to verify first-party modules\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff now checks that the full path to a module exists on disk before categorizing it as a first-party import. This change makes first-party import detection more accurate, helping to avoid false positives on local directories with the same name as a third-party dependency, for example. See the \u003ca href=\"https://docs.astral.sh/ruff/faq/#how-does-ruff-determine-which-of-my-imports-are-first-party-third-party-etc\"\u003eFAQ section\u003c/a\u003e on import categorization for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecated rules must now be selected by exact rule code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer activate deprecated rules selected by their group name or prefix. As noted below, the two remaining deprecated rules were also removed in this release, so this won't affect any current rules, but it will still affect any deprecations in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eThe deprecated macOS configuration directory fallback has been removed\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer look for a user-level configuration file at \u003ccode\u003e~/Library/Application Support/ruff/ruff.toml\u003c/code\u003e on macOS. This feature was deprecated in v0.5 in favor of using the \u003ca href=\"https://specifications.freedesktop.org/basedir-spec/latest/\"\u003eXDG specification\u003c/a\u003e (usually resolving to \u003ccode\u003e~/.config/ruff/ruff.toml\u003c/code\u003e), like on Linux. The fallback and accompanying deprecation warning have now been removed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Rules\u003c/h3\u003e\n\u003cp\u003eThe following rules have been removed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pandas-df-variable-name\"\u003e\u003ccode\u003epandas-df-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePD901\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/non-pep604-isinstance\"\u003e\u003ccode\u003enon-pep604-isinstance\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP038\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStabilization\u003c/h3\u003e\n\u003cp\u003eThe following rules have been stabilized and are no longer in preview:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow-dag-no-schedule-argument\"\u003e\u003ccode\u003eairflow-dag-no-schedule-argument\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR002\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-removal\"\u003e\u003ccode\u003eairflow3-removal\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR301\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-moved-to-provider\"\u003e\u003ccode\u003eairflow3-moved-to-provider\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR302\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-suggested-update\"\u003e\u003ccode\u003eairflow3-suggested-update\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR311\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/airflow3-suggested-to-move-to-provider\"\u003e\u003ccode\u003eairflow3-suggested-to-move-to-provider\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eAIR312\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/long-sleep-not-forever\"\u003e\u003ccode\u003elong-sleep-not-forever\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eASYNC116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/f-string-number-format\"\u003e\u003ccode\u003ef-string-number-format\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eFURB116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/os-symlink\"\u003e\u003ccode\u003eos-symlink\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePTH211\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/generic-not-last-base-class\"\u003e\u003ccode\u003egeneric-not-last-base-class\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePYI059\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/redundant-none-literal\"\u003e\u003ccode\u003eredundant-none-literal\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePYI061\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pytest-raises-ambiguous-pattern\"\u003e\u003ccode\u003epytest-raises-ambiguous-pattern\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eRUF043\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/unused-unpacked-variable\"\u003e\u003ccode\u003eunused-unpacked-variable\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eRUF059\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-class-metaclass-type\"\u003e\u003ccode\u003euseless-class-metaclass-type\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP050\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following behaviors have been stabilized:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.0\u003c/h2\u003e\n\u003cp\u003eCheck out the \u003ca href=\"https://astral.sh/blog/ruff-v0.13.0\"\u003eblog post\u003c/a\u003e for a migration\nguide and overview of the changes!\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSeveral rules can now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e, \u003ccode\u003eRUF013\u003c/code\u003e, and \u003ccode\u003eUP037\u003c/code\u003e now add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e as part of their fixes when the\n\u003ccode\u003elint.future-annotations\u003c/code\u003e setting is enabled. This allows the rules to move\nmore imports into \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, and \u003ccode\u003eTC003\u003c/code\u003e),\nuse PEP 604 union syntax on Python versions before 3.10 (\u003ccode\u003eRUF013\u003c/code\u003e), and\nunquote more annotations (\u003ccode\u003eUP037\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFull module paths are now used to verify first-party modules\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff now checks that the full path to a module exists on disk before\ncategorizing it as a first-party import. This change makes first-party\nimport detection more accurate, helping to avoid false positives on local\ndirectories with the same name as a third-party dependency, for example. See\nthe \u003ca href=\"https://docs.astral.sh/ruff/faq/#how-does-ruff-determine-which-of-my-imports-are-first-party-third-party-etc\"\u003eFAQ\nsection\u003c/a\u003e on import categorization for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecated rules must now be selected by exact rule code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer activate deprecated rules selected by their group name\nor prefix. As noted below, the two remaining deprecated rules were also\nremoved in this release, so this won't affect any current rules, but it will\nstill affect any deprecations in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eThe deprecated macOS configuration directory fallback has been removed\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eRuff will no longer look for a user-level configuration file at\n\u003ccode\u003e~/Library/Application Support/ruff/ruff.toml\u003c/code\u003e on macOS. This feature was\ndeprecated in v0.5 in favor of using the \u003ca href=\"https://specifications.freedesktop.org/basedir-spec/latest/\"\u003eXDG\nspecification\u003c/a\u003e\n(usually resolving to \u003ccode\u003e~/.config/ruff/ruff.toml\u003c/code\u003e), like on Linux. The\nfallback and accompanying deprecation warning have now been removed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved Rules\u003c/h3\u003e\n\u003cp\u003eThe following rules have been removed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/pandas-df-variable-name\"\u003e\u003ccode\u003epandas-df-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003ePD901\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/non-pep604-isinstance\"\u003e\u003ccode\u003enon-pep604-isinstance\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eUP038\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStabilization\u003c/h3\u003e\n\u003cp\u003eThe following rules have been stabilized and are no longer in preview:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a1fdd66f10a045a574efb20e422868b21decda40\"\u003e\u003ccode\u003ea1fdd66\u003c/code\u003e\u003c/a\u003e Bump 0.13.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20336\"\u003e#20336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8770b95509b7a5a3b23061d739e6260303613f55\"\u003e\u003ccode\u003e8770b95\u003c/code\u003e\u003c/a\u003e [ty] introduce \u003ccode\u003eDivergentType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20312\"\u003e#20312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/65982a1e14a15449ea0ed5cf66b7f9dea6d3e82c\"\u003e\u003ccode\u003e65982a1\u003c/code\u003e\u003c/a\u003e [ty] Use 'unknown' specialization for upper bound on Self (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20325\"\u003e#20325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/57d1f7132dbac82e07f22560dbedba7cff1dadc4\"\u003e\u003ccode\u003e57d1f71\u003c/code\u003e\u003c/a\u003e [ty] Simplify unions of enum literals and subtypes thereof (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20324\"\u003e#20324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7a75702237e6f0bc605d3d8e9470c4ca9f37c69e\"\u003e\u003ccode\u003e7a75702\u003c/code\u003e\u003c/a\u003e Ignore deprecated rules unless selected by exact code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20167\"\u003e#20167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ca632c84fef6ecb7fc810cacb0df801c7949c70\"\u003e\u003ccode\u003e9ca632c\u003c/code\u003e\u003c/a\u003e Stabilize adding future import via config option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20277\"\u003e#20277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/64fe7d30a3ac9444eab1ed397c451b6c6e80bc6f\"\u003e\u003ccode\u003e64fe7d3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Stabilize extending \u003ccode\u003eraw-string-in-exception\u003c/code\u003e (\u003ccode\u003eEM101\u003c/code\u003e) to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beeeb8d5c5c8dabea2b11b0b8ed0f3c12dbf22c7\"\u003e\u003ccode\u003ebeeeb8d\u003c/code\u003e\u003c/a\u003e Stabilize the remaining Airflow rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20250\"\u003e#20250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b6fca52855d01dd40904386f5b8a6d4a17caae11\"\u003e\u003ccode\u003eb6fca52\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Stabilize support for non-context-manager calls in `assert...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ac7f882c78db09700bf6bccefe0e9a27fb1696b9\"\u003e\u003ccode\u003eac7f882\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-commas\u003c/code\u003e] Stabilize support for trailing comma checks in type paramet...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.12...0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.9.0 to 4.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\n(\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\nkeyword argument\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eNone\u003c/code\u003e as the default type argument for \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and\n\u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e\n(\u003ccode\u003e[#818](https://github.com/agronholm/anyio/issues/818) \u0026lt;https://github.com/agronholm/anyio/issues/818\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e\nand \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things,\nthis prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e.\n(\u003ccode\u003e[#896](https://github.com/agronholm/anyio/issues/896) \u0026lt;https://github.com/agronholm/anyio/pull/896\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint\n(special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and\nChristoffer Fjord)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6\"\u003e\u003ccode\u003e0cf55b8\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345\"\u003e\u003ccode\u003eb029df5\u003c/code\u003e\u003c/a\u003e Updated the to_interpreter module to use the public API on Python 3.14 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1\"\u003e\u003ccode\u003e01f02cf\u003c/code\u003e\u003c/a\u003e Incorporated EP2025 sprint feedback and added a new section (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4\"\u003e\u003ccode\u003ed896480\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/954\"\u003e#954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c\"\u003e\u003ccode\u003e0282b81\u003c/code\u003e\u003c/a\u003e Added the BufferedByteReceiveStream.feed_data() method (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb\"\u003e\u003ccode\u003e19e5477\u003c/code\u003e\u003c/a\u003e Fixed a cancellation edge case for asyncio CapacityLimiter (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827\"\u003e\u003ccode\u003e4666df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e\"\u003e\u003ccode\u003e38c2567\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb\"\u003e\u003ccode\u003e3db73ac\u003c/code\u003e\u003c/a\u003e Add missing imports for Readcting to cancellation in worker threads example (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9\"\u003e\u003ccode\u003e2eda004\u003c/code\u003e\u003c/a\u003e Added an example on how to use move_on_after() with shielding\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.13.5\n\nUpdates `cachetools` from 5.5.2 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.0.0 (2025-05-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequire Python 3.9 or later (breaking change).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eMRUCache\u003c/code\u003e and the \u003ccode\u003e@func.mru_cache\u003c/code\u003e decorator (breaking\nchange).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd an optional \u003ccode\u003econdition\u003c/code\u003e parameter to the \u003ccode\u003e@cached\u003c/code\u003e and\n\u003ccode\u003e@cachedmethod\u003c/code\u003e decorators, which, when used with a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance, should improve \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues in massively\nparallel environments.  Note that this will inflict some performance\npenalty, and therefore has to be enabled explicitly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConvert the \u003ccode\u003ecachetools.func\u003c/code\u003e decorators to use a\n\u003ccode\u003ethreading.Condition\u003c/code\u003e instance to deal with \u003ccode\u003ecache stampede \u0026lt;https://en.wikipedia.org/wiki/Cache_stampede\u0026gt;\u003c/code\u003e_ issues.  Note that\nthis \u003cem\u003emay\u003c/em\u003e result in a noticable performance degradation, depending\non your actual use case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate support for \u003ccode\u003ecache(self)\u003c/code\u003e returning \u003ccode\u003eNone\u003c/code\u003e to suppress\ncaching with the \u003ccode\u003e@cachedmethod\u003c/code\u003e decorator.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e497575fcb4d29dfb773824956539215db964059\"\u003e\u003ccode\u003ee497575\u003c/code\u003e\u003c/a\u003e Release v6.0.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0a8f391979f72f3237be8cdb79d6128dd5caeb93\"\u003e\u003ccode\u003e0a8f391\u003c/code\u003e\u003c/a\u003e Update related projects section.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3afef37bdbf8fa8f6dddbc303ecd91c9fd32ab01\"\u003e\u003ccode\u003e3afef37\u003c/code\u003e\u003c/a\u003e Pre-release v6.0.0b4.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v5.5.2...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comm` from 0.2.2 to 0.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/comm/releases\"\u003ecomm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.3\u003c/h2\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\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/ipython/comm/blob/main/CHANGELOG.md\"\u003ecomm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/057b00a49aabb97fb3c66eedcd97f09c6481d3c8\"\u003e\u003ccode\u003e057b00a\u003c/code\u003e\u003c/a\u003e Publish 0.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003e\u003ccode\u003eec3eb43\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003etraitlets\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/ipython/comm/issues/32\"\u003e#32\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/2223501c677ac4b8289294947cb10f4f120c6117\"\u003e\u003ccode\u003e2223501\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/29\"\u003e#29\u003c/a\u003e from Carreau/secmd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/31714fec2ec02aa0fdeb34bdaddee0ed94e5b676\"\u003e\u003ccode\u003e31714fe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/706df339274bd66b887badfc755a5369223b09a4\"\u003e\u003ccode\u003e706df33\u003c/code\u003e\u003c/a\u003e Add Security.md file.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/3737dd5e8225dbcf710fb3490b01d3bdafc80294\"\u003e\u003ccode\u003e3737dd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/28\"\u003e#28\u003c/a\u003e from Carreau/pc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/265d2c07ef255785e9aef4111f1391091d7e9d7e\"\u003e\u003ccode\u003e265d2c0\u003c/code\u003e\u003c/a\u003e pre-commit updates and fixes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...v0.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full dif...\n\n_Description has been truncated_","html_url":"https://github.com/navikt/pensjon-data-analyse/pull/73","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/navikt%2Fpensjon-data-analyse/issues/73","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/73/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-09-15T14:17:31.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2829464379","node_id":"PR_kwDOMHVffc6opjM7","number":62,"state":"open","title":"Bump the python-packages group across 1 directory with 37 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T14:17:31.000Z","updated_at":"2025-09-15T14:17:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":37,"packages":[{"name":"anyio","old_version":"4.9.0","new_version":"4.10.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argon2-cffi-bindings","old_version":"21.2.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi-bindings"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.13.5"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.16","repository_url":"https://github.com/microsoft/debugpy"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"flask","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.59.2","repository_url":"https://github.com/fonttools/fonttools"},{"name":"ipykernel","old_version":"6.29.5","new_version":"6.30.1","repository_url":"https://github.com/ipython/ipykernel"},{"name":"joblib","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/joblib/joblib"},{"name":"json5","old_version":"0.12.0","new_version":"0.12.1","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","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":"jupyter-lsp","old_version":"2.2.5","new_version":"2.3.0","repository_url":"https://github.com/jupyter-lsp/jupyterlab-lsp"},{"name":"jupyter-server","old_version":"2.16.0","new_version":"2.17.0","repository_url":"https://github.com/jupyter-server/jupyter_server"},{"name":"jupyterlab","old_version":"4.4.4","new_version":"4.4.7","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"mistune","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/lepture/mistune"},{"name":"notebook","old_version":"7.4.4","new_version":"7.4.5","repository_url":"https://github.com/jupyter/notebook"},{"name":"pandas","old_version":"2.3.0","new_version":"2.3.2","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyzmq","old_version":"27.0.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"qtconsole","old_version":"5.6.1","new_version":"5.7.0","repository_url":"https://github.com/jupyter/qtconsole"},{"name":"regex","old_version":"2024.11.6","new_version":"2025.9.1","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-python-dateutil","old_version":"2.9.0.20250516","new_version":"2.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 37 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.10.0` |\n| [argon2-cffi-bindings](https://github.com/hynek/argon2-cffi-bindings) | `21.2.0` | `25.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.13.5` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.16` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.59.2` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `6.30.1` |\n| [joblib](https://github.com/joblib/joblib) | `1.5.1` | `1.5.2` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.0` | `0.12.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-lsp](https://github.com/jupyter-lsp/jupyterlab-lsp) | `2.2.5` | `2.3.0` |\n| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.16.0` | `2.17.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.4` | `4.4.7` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.3` | `3.1.4` |\n| [notebook](https://github.com/jupyter/notebook) | `7.4.4` | `7.4.5` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.0` | `2.3.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.4` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `27.0.0` | `27.1.0` |\n| [qtconsole](https://github.com/jupyter/qtconsole) | `5.6.1` | `5.7.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2024.11.6` | `2025.9.1` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader) | `2.9.0.20250516` | `2.9.0.20250822` |\n\n\nUpdates `anyio` from 4.9.0 to 4.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.10.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing users to inject data directly into the buffer\u003c/li\u003e\n\u003cli\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to various remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and \u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context managers, particularly cancel scopes or task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/905\"\u003e#905\u003c/a\u003e; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/818\"\u003e#818\u003c/a\u003e; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e and \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things, this prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/896\"\u003e#896\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint (special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and Christoffer Fjord)\u003c/li\u003e\n\u003cli\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead of asyncio's\u003c/li\u003e\n\u003cli\u003eUpdated the \u003ccode\u003eto_interpreters\u003c/code\u003e module to use the public \u003ccode\u003econcurrent.interpreters\u003c/code\u003e API on Python 3.14 or later\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can suppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/913\"\u003e#913\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover only occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/915\"\u003e#915\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/926\"\u003e#926\u003c/a\u003e; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSyntaxWarning\u003c/code\u003e on Python 3.14 about \u003ccode\u003ereturn\u003c/code\u003e in \u003ccode\u003efinally\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed RunVar name conflicts. RunVar instances with the same name should not share storage (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/880\"\u003e#880\u003c/a\u003e; PR by \u003ca href=\"https://github.com/vimfu\"\u003e\u003ccode\u003e@​vimfu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRenamed the \u003ccode\u003eBrokenWorkerIntepreter\u003c/code\u003e exception to \u003ccode\u003eBrokenWorkerInterpreter\u003c/code\u003e. The old name is available as a deprecated alias. (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/938\"\u003e#938\u003c/a\u003e; PR by \u003ca href=\"https://github.com/ayussh-verma\"\u003e\u003ccode\u003e@​ayussh-verma\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an edge case in \u003ccode\u003eCapacityLimiter\u003c/code\u003e on asyncio where a task, waiting to acquire a limiter gets cancelled and is subsequently granted a token from the limiter, but before the cancellation is delivered, and then fails to notify the next waiting task (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for cancellation reasons (the \u003ccode\u003ereason\u003c/code\u003e parameter to\n\u003ccode\u003eCancelScope.cancel()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBumped the minimum version of Trio to v0.31.0\u003c/li\u003e\n\u003cli\u003eAdded the ability to enter the event loop from foreign (non-worker) threads by\npassing the return value of \u003ccode\u003eanyio.lowlevel.current_token()\u003c/code\u003e to\n\u003ccode\u003eanyio.from_thread.run()\u003c/code\u003e and \u003ccode\u003eanyio.from_thread.run_sync()\u003c/code\u003e as the \u003ccode\u003etoken\u003c/code\u003e\n(\u003ccode\u003e[#256](https://github.com/agronholm/anyio/issues/256) \u0026lt;https://github.com/agronholm/anyio/issues/256\u0026gt;\u003c/code\u003e_)\nkeyword argument\u003c/li\u003e\n\u003cli\u003eAdded pytest option (\u003ccode\u003eanyio_mode = \u0026quot;auto\u0026quot;\u003c/code\u003e) to make the pytest plugin automatically\nhandle all async tests\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eanyio.Condition.wait_for()\u003c/code\u003e method for feature parity with asyncio\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003eNone\u003c/code\u003e as the default type argument for \u003ccode\u003eanyio.abc.TaskStatus\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.10.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003efeed_data()\u003c/code\u003e method to the \u003ccode\u003eBufferedByteReceiveStream\u003c/code\u003e class, allowing\nusers to inject data directly into the buffer\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded various class methods to wrap existing sockets as listeners or socket streams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSocketListener.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXSocketStream.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUDPSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnectedUNIXDatagramSocket.from_socket()\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and\n\u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e\n(\u003ccode\u003e[#818](https://github.com/agronholm/anyio/issues/818) \u0026lt;https://github.com/agronholm/anyio/issues/818\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e\nand \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things,\nthis prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e.\n(\u003ccode\u003e[#896](https://github.com/agronholm/anyio/issues/896) \u0026lt;https://github.com/agronholm/anyio/pull/896\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncorporated several documentation improvements from the EuroPython 2025 sprint\n(special thanks to the sprinters: Emmanuel Okedele, Jan Murre, Euxenia Miruna Goia and\nChristoffer Fjord)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a documentation page explaining why one might want to use AnyIO's APIs instead\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cf55b8277128726c8d5720a4fda29ec1ffccfb6\"\u003e\u003ccode\u003e0cf55b8\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b029df574164e0df7e542fa4fd01abdbb7db7345\"\u003e\u003ccode\u003eb029df5\u003c/code\u003e\u003c/a\u003e Updated the to_interpreter module to use the public API on Python 3.14 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/956\"\u003e#956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/01f02cf5ee9a706c89f57ef58c30de3cbf87abb1\"\u003e\u003ccode\u003e01f02cf\u003c/code\u003e\u003c/a\u003e Incorporated EP2025 sprint feedback and added a new section (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/955\"\u003e#955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d89648054c8a939fbde1cc2d590aa875b9139aa4\"\u003e\u003ccode\u003ed896480\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/954\"\u003e#954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0282b814c0067b5fa336d339b4bd57ed6e62266c\"\u003e\u003ccode\u003e0282b81\u003c/code\u003e\u003c/a\u003e Added the BufferedByteReceiveStream.feed_data() method (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e5477238d37499de42ebedf99c557848479cfb\"\u003e\u003ccode\u003e19e5477\u003c/code\u003e\u003c/a\u003e Fixed a cancellation edge case for asyncio CapacityLimiter (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/952\"\u003e#952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4666df3905af92ac02b515e0827ff9510dcba827\"\u003e\u003ccode\u003e4666df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/38c256709dc8d34de57a43faeab72c935e74ad6e\"\u003e\u003ccode\u003e38c2567\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3db73acbf7d715bc47fe9fd6d190374afa3132fb\"\u003e\u003ccode\u003e3db73ac\u003c/code\u003e\u003c/a\u003e Add missing imports for Readcting to cancellation in worker threads example (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/2eda004497cc7ab2b8c1ede4d7c4c276f0840fd9\"\u003e\u003ccode\u003e2eda004\u003c/code\u003e\u003c/a\u003e Added an example on how to use move_on_after() with shielding\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.9.0...4.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi-bindings` from 21.2.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/releases\"\u003eargon2-cffi-bindings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eFree-threading for Python 3.14!\u003c/p\u003e\n\u003cp\u003eCurrently, it's a bit complicated, because it requires CFFI 2.0 which is only available as a pre-release.\u003c/p\u003e\n\u003cp\u003eTherefore, when installing with \u003cem\u003euv\u003c/em\u003e, it's necessary to pass like this:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ uv pip install --prerelease=allow argon2-cffi\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://www.miketheman.net\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Ordinary Hobbit (@\u003ca href=\"https://github.com/grillazz\"\u003egrillazz\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support. No code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support. There is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions. The \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/hynek/argon2-cffi-bindings/blob/main/CHANGELOG.md\"\u003eargon2-cffi-bindings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-07-30\u003c/h2\u003e\n\u003cp\u003eVendoring Argon2 @ \u003ca href=\"https://github.com/P-H-C/phc-winner-argon2/commit/f57e61e19229e23c4445b85494dbf7c07de721cb\"\u003e\u003cstrong\u003e\u003ccode\u003ef57e61e\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOfficial Python 3.12, 3.13, and 3.14 support.\nNo code or packaging changes were necessary.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport for free-threading (aka nogil) on Python 3.14.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/70\"\u003e#70\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/93\"\u003e#93\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWheels for Windows on ARM64.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/pull/83\"\u003e#83\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.6, 3.7, and 3.8 support.\nThere is very little activity on the bindings repo, so it doesn't make sense to carry around the build complexity of those ancient Python versions.\nThe \u003ca href=\"https://pypi.org/project/argon2-cffi-bindings/21.2.0/\"\u003e21.2.0 wheels on PyPI\u003c/a\u003e include support for Python 3.6 and are based on the same Argon2 version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/66f5b2340ef25699504bcc0f08eadcbefaf219aa\"\u003e\u003ccode\u003e66f5b23\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/d2c80c05dc12079b7bce081df13a12251281a136\"\u003e\u003ccode\u003ed2c80c0\u003c/code\u003e\u003c/a\u003e Consistency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/cc7181e7de500e5acf8277c6b7abcf1946bbb6bb\"\u003e\u003ccode\u003ecc7181e\u003c/code\u003e\u003c/a\u003e Use dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/94\"\u003e#94\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/41aecc197493d627e43ab36e8d30c52811c834d7\"\u003e\u003ccode\u003e41aecc1\u003c/code\u003e\u003c/a\u003e Update metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1276da7784ff9375842d22c66a8812e3ac51c5e2\"\u003e\u003ccode\u003e1276da7\u003c/code\u003e\u003c/a\u003e Mention new wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/1aad4747f9b73b549f39894a27118037ba484c20\"\u003e\u003ccode\u003e1aad474\u003c/code\u003e\u003c/a\u003e Add support for free-threaded builds (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/70\"\u003e#70\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/3ed973484763dd8084d54cff47d5121653d9ff9b\"\u003e\u003ccode\u003e3ed9734\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 2.23 to 3.0 (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi-bindings/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/c2bc26268c939436d8b1584a51dfdeacefb5b6c8\"\u003e\u003ccode\u003ec2bc262\u003c/code\u003e\u003c/a\u003e update Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/e5d69b7ef5690819ae21ab6deb24a49dcf9c1aec\"\u003e\u003ccode\u003ee5d69b7\u003c/code\u003e\u003c/a\u003e Zizmor: clarify trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/commit/4bb1e3bad074c923a14892c754a5fa5e41d3d398\"\u003e\u003ccode\u003e4bb1e3b\u003c/code\u003e\u003c/a\u003e Update + rename Ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi-bindings/compare/21.2.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.13.4 to 4.13.5\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comm` from 0.2.2 to 0.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/comm/releases\"\u003ecomm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.2.3\u003c/h2\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\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/ipython/comm/blob/main/CHANGELOG.md\"\u003ecomm's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.2.3\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eMerged PRs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003etraitlets\u003c/code\u003e dependency \u003ca href=\"https://redirect.github.com/ipython/comm/pull/32\"\u003e#32\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Security.md file. \u003ca href=\"https://redirect.github.com/ipython/comm/pull/29\"\u003e#29\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epre-commit updates and fixes \u003ca href=\"https://redirect.github.com/ipython/comm/pull/28\"\u003e#28\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/comm/graphs/contributors?from=2024-03-12\u0026amp;to=2025-07-25\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3ACarreau+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fcomm+involves%3Adavidbrochart+updated%3A2024-03-12..2025-07-25\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/057b00a49aabb97fb3c66eedcd97f09c6481d3c8\"\u003e\u003ccode\u003e057b00a\u003c/code\u003e\u003c/a\u003e Publish 0.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/ec3eb438c07314b47c057c1cc3ce5fe43c294e90\"\u003e\u003ccode\u003eec3eb43\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003etraitlets\u003c/code\u003e dependency (\u003ca href=\"https://redirect.github.com/ipython/comm/issues/32\"\u003e#32\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/2223501c677ac4b8289294947cb10f4f120c6117\"\u003e\u003ccode\u003e2223501\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/29\"\u003e#29\u003c/a\u003e from Carreau/secmd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/31714fec2ec02aa0fdeb34bdaddee0ed94e5b676\"\u003e\u003ccode\u003e31714fe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/706df339274bd66b887badfc755a5369223b09a4\"\u003e\u003ccode\u003e706df33\u003c/code\u003e\u003c/a\u003e Add Security.md file.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/3737dd5e8225dbcf710fb3490b01d3bdafc80294\"\u003e\u003ccode\u003e3737dd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ipython/comm/issues/28\"\u003e#28\u003c/a\u003e from Carreau/pc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/comm/commit/265d2c07ef255785e9aef4111f1391091d7e9d7e\"\u003e\u003ccode\u003e265d2c0\u003c/code\u003e\u003c/a\u003e pre-commit updates and fixes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ipython/comm/compare/v0.2.2...v0.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.14 to 1.8.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.16\u003c/h2\u003e\n\u003cp\u003eFixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/pull/1939\"\u003eFix bug in attach for 3.11 and lower on Windows\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/osiewicz\"\u003e\u003ccode\u003e@​osiewicz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.15\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1876\"\u003eStep Over, Step Into, not working when debugging Subprocesses\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1918\"\u003eAllow debugging child processes started through an intermediary\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/pull/1917\"\u003eAttach to process on arm64 Mac\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1898\"\u003eDocumentation typo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1893\"\u003e3.14 preliminary support\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/MichaelSpece\"\u003e\u003ccode\u003e@​MichaelSpece\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jborean93\"\u003e\u003ccode\u003e@​jborean93\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ConradIrwin\"\u003e\u003ccode\u003e@​ConradIrwin\u003c/code\u003e\u003c/a\u003e for your help\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/b00a8129977494bd127dd0bfed22082597762a08\"\u003e\u003ccode\u003eb00a812\u003c/code\u003e\u003c/a\u003e pydevd: Fix up prefix of attach shared library for Windows (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1939\"\u003e#1939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1aff9aa541955b967f41895570d4c0b54a7504d9\"\u003e\u003ccode\u003e1aff9aa\u003c/code\u003e\u003c/a\u003e Expose CLI Options through public API (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1928\"\u003e#1928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ead90f6f71de505191038872a2aa8718874372a9\"\u003e\u003ccode\u003eead90f6\u003c/code\u003e\u003c/a\u003e Fix round-robin CI script when state issue has no assignees (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1930\"\u003e#1930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/2b1e361eace18384ed30e2f18ae32febd9faea09\"\u003e\u003ccode\u003e2b1e361\u003c/code\u003e\u003c/a\u003e Document --adapter-access-token CLI arg (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1927\"\u003e#1927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea1dd9a838749a58bcc2d026693cc5a3c3cdbad1\"\u003e\u003ccode\u003eea1dd9a\u003c/code\u003e\u003c/a\u003e Fix debugger stepping actions in forked process (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/b387710b7f5cb7cbeab10783540d497854d71615\"\u003e\u003ccode\u003eb387710\u003c/code\u003e\u003c/a\u003e Add parent-session-pid argument (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/0d65353cc6e519292296bf567bdc6dfa5bcd4ffc\"\u003e\u003ccode\u003e0d65353\u003c/code\u003e\u003c/a\u003e Fix attach to process on arm64 Mac. (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1917\"\u003e#1917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/99b202ee21441f844b4c8fa3f79d518834fa5ff5\"\u003e\u003ccode\u003e99b202e\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1898\"\u003emicrosoft/debugpy#1898\u003c/a\u003e Fix. (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1899\"\u003e#1899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/34d5de99a0862404c6557e8a3479cd5b6d4445f1\"\u003e\u003ccode\u003e34d5de9\u003c/code\u003e\u003c/a\u003e IPv6 support (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1896\"\u003e#1896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4bc7343c05b9b4eaddf66466fa18edb4f98046d7\"\u003e\u003ccode\u003e4bc7343\u003c/code\u003e\u003c/a\u003e Fix 3.14 beta break with \u003ccode\u003e_handle\u003c/code\u003e on thread (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1895\"\u003e#1895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.14...v1.8.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `executing` from 2.2.0 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bafb305d96572bc8fb668b6564787bbb4fff2809\"\u003e\u003ccode\u003ebafb305\u003c/code\u003e\u003c/a\u003e Add 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/5ed2ba36c2df94c91fefabd919880ffe061dc0f2\"\u003e\u003ccode\u003e5ed2ba3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexmojaki/executing/issues/97\"\u003e#97\u003c/a\u003e from alexmojaki/3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/28095d447af50c49e154de5a27b9423611462f3d\"\u003e\u003ccode\u003e28095d4\u003c/code\u003e\u003c/a\u003e refactor: review changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bb09dc677da7988a2c9555878b3727afa995b2c0\"\u003e\u003ccode\u003ebb09dc6\u003c/code\u003e\u003c/a\u003e refactor: some cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/dabc70ef5cc9a45eb57432822cdcf674af2e1db8\"\u003e\u003ccode\u003edabc70e\u003c/code\u003e\u003c/a\u003e fix: inst.argval can be a tuple for sometimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/0772f918c432d6451594bcb6ffccba62e32e794c\"\u003e\u003ccode\u003e0772f91\u003c/code\u003e\u003c/a\u003e fix: removed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bacc5b699405e6f27d882dd2a71bb0ec30167f37\"\u003e\u003ccode\u003ebacc5b6\u003c/code\u003e\u003c/a\u003e fix: moved verification for CALL_INTRINSIC_2 back to 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/ec090751a1645cd14bfcb20a79b02371ffd6172b\"\u003e\u003ccode\u003eec09075\u003c/code\u003e\u003c/a\u003e test: added sample_results for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/9405fed0769af3ee22dd4f433249f6494688638e\"\u003e\u003ccode\u003e9405fed\u003c/code\u003e\u003c/a\u003e fix: handle synthetic code to store annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/f09e4cd194aa3480c12a9f5afab3524d2a7222f2\"\u003e\u003ccode\u003ef09e4cd\u003c/code\u003e\u003c/a\u003e fix: TypeVar defaults\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexmojaki/executing/compare/v2.2.0...v2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastjsonschema` from 2.21.1 to 2.21.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.1.1 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.1...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fonttools` from 4.58.4 to 4.59.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fonttools/fonttools/releases\"\u003efonttools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.59.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[varLib] Clear \u003ccode\u003eUSE_MY_METRICS\u003c/code\u003e component flags when inconsistent across masters (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3912\"\u003e#3912\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Avoid negative advance width/height values when instatiating HVAR/VVAR, (unlikely in well-behaved fonts) (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3918\"\u003e#3918\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[subset] Fix shaping behaviour when pruning empty mark sets (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3915\"\u003e#3915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/harfbuzz/harfbuzz/issues/5499\"\u003eharfbuzz/harfbuzz#5499\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Fixed \u003ccode\u003edot()\u003c/code\u003e product of perpendicular vectors not always returning exactly 0.0 in all Python implementations (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3911\"\u003e#3911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Implemented fully-instantiating \u003ccode\u003eavar2\u003c/code\u003e fonts (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3909\"\u003e#3909\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib] Allow float values in \u003ccode\u003eVariableScalar\u003c/code\u003e's axis locations (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3906\"\u003e#3906\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3907\"\u003e#3907\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Handle special case in \u003ccode\u003ecalc_intersect\u003c/code\u003e for degenerate cubic curves where 3 to 4 control points are equal (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3904\"\u003e#3904\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.59.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[featureVars] Update OS/2.usMaxContext if possible after addFeatureVariationsRaw (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3894\"\u003e#3894\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[vhmtx] raise TTLibError('not enough data...') when hmtx/vmtx are truncated (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3843\"\u003e#3843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3901\"\u003e#3901\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib] Combine duplicate features that have the same set of lookups regardless of the order in which those lookups are added to the feature (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3895\"\u003e#3895\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib] Deprecate \u003ccode\u003evarLib.mutator\u003c/code\u003e in favor of \u003ccode\u003evarLib.instancer\u003c/code\u003e. The latter provides equivalent full (static font) instancing in addition to partial VF instancing.\u003cbr /\u003e\nCLI users should replace \u003ccode\u003efonttools varLib.mutator\u003c/code\u003e with \u003ccode\u003efonttools varLib.instancer\u003c/code\u003e. API users should migrate to \u003ccode\u003efontTools.varLib.instancer.instantiateVariableFont\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/2680\"\u003e#2680\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.59.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved hard-dependency on pyfilesystem2 (\u003ccode\u003efs\u003c/code\u003e package) from \u003ccode\u003efonttools[ufo]\u003c/code\u003e extra. This is replaced by the \u003ccode\u003efontTools.misc.filesystem\u003c/code\u003e package, a stdlib-only, drop-in replacement for the subset of the pyfilesystem2's API used by \u003ccode\u003efontTools.ufoLib\u003c/code\u003e. The latter should continue to work with the upstream \u003ccode\u003efs\u003c/code\u003e (we even test with/without). However, clients who wish to continue using \u003ccode\u003efs\u003c/code\u003e can do so by depending on it directly instead of via the \u003ccode\u003efonttools[ufo]\u003c/code\u003e extra (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3885\"\u003e#3885\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3620\"\u003e#3620\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[xmlWriter] Replace illegal XML characters (e.g. control or non-characters) with \u0026quot;?\u0026quot; when dumping to ttx (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3868\"\u003e#3868\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/71\"\u003e#71\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.hvar] Fixed vertical metrics fields copy/pasta error (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3884\"\u003e#3884\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMicro optimizations in ttLib and sstruct modules (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3878\"\u003e#3878\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3879\"\u003e#3879\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[unicodedata] Add Garay script to RTL_SCRIPTS (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3882\"\u003e#3882\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[roundingPen] Remove unreliable kwarg usage. Argument names aren’t consistent among point pens’ \u003ccode\u003e.addComponent()\u003c/code\u003e implementations, in particular \u003ccode\u003ebaseGlyphName\u003c/code\u003e vs \u003ccode\u003eglyphName\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3880\"\u003e#3880\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.58.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[feaLib] Don't try to combine ligature \u0026amp; multisub rules (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3874\"\u003e#3874\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib/ast] Use weakref proxies to avoid cycles in visitor (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3873\"\u003e#3873\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Fixed instancing CFF2 fonts where VarData contains more than 64k items (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3858\"\u003e#3858\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fonttools/fonttools/blob/main/NEWS.rst\"\u003efonttools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.59.2 (released 2025-08-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[varLib] Clear \u003ccode\u003eUSE_MY_METRICS\u003c/code\u003e component flags when inconsistent across masters (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3912\"\u003e#3912\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Avoid negative advance width/height values when instatiating HVAR/VVAR,\n(unlikely in well-behaved fonts) (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3918\"\u003e#3918\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[subset] Fix shaping behaviour when pruning empty mark sets (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3915\"\u003e#3915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/harfbuzz/harfbuzz/issues/5499\"\u003eharfbuzz/harfbuzz#5499\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Fixed \u003ccode\u003edot()\u003c/code\u003e product of perpendicular vectors not always returning exactly 0.0\nin all Python implementations (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3911\"\u003e#3911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Implemented fully-instantiating \u003ccode\u003eavar2\u003c/code\u003e fonts (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3909\"\u003e#3909\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib] Allow float values in \u003ccode\u003eVariableScalar\u003c/code\u003e's axis locations (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3906\"\u003e#3906\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3907\"\u003e#3907\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Handle special case in \u003ccode\u003ecalc_intersect\u003c/code\u003e for degenerate cubic curves where 3 to 4\ncontrol points are equal (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3904\"\u003e#3904\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.59.1 (released 2025-08-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[featureVars] Update OS/2.usMaxContext if possible after addFeatureVariationsRaw (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3894\"\u003e#3894\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[vhmtx] raise TTLibError('not enough data...') when hmtx/vmtx are truncated (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3843\"\u003e#3843\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3901\"\u003e#3901\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib] Combine duplicate features that have the same set of lookups regardless of the order in which those lookups are added to the feature (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3895\"\u003e#3895\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib] Deprecate \u003ccode\u003evarLib.mutator\u003c/code\u003e in favor of \u003ccode\u003evarLib.instancer\u003c/code\u003e. The latter\nprovides equivalent full (static font) instancing in addition to partial VF instancing.\nCLI users should replace \u003ccode\u003efonttools varLib.mutator\u003c/code\u003e with \u003ccode\u003efonttools varLib.instancer\u003c/code\u003e.\nAPI users should migrate to \u003ccode\u003efontTools.varLib.instancer.instantiateVariableFont\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/2680\"\u003e#2680\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.59.0 (released 2025-07-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved hard-dependency on pyfilesystem2 (\u003ccode\u003efs\u003c/code\u003e package) from \u003ccode\u003efonttools[ufo]\u003c/code\u003e extra.\nThis is replaced by the \u003ccode\u003efontTools.misc.filesystem\u003c/code\u003e package, a stdlib-only, drop-in\nreplacement for the subset of the pyfilesystem2's API used by \u003ccode\u003efontTools.ufoLib\u003c/code\u003e.\nThe latter should continue to work with the upstream \u003ccode\u003efs\u003c/code\u003e (we even test with/without).\nClients who wish to continue using \u003ccode\u003efs\u003c/code\u003e can do so by depending on it directly instead\nof via the \u003ccode\u003efonttools[ufo]\u003c/code\u003e extra (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3885\"\u003e#3885\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3620\"\u003e#3620\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[xmlWriter] Replace illegal XML characters (e.g. control or non-characters) with \u0026quot;?\u0026quot;\nwhen dumping to ttx (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3868\"\u003e#3868\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/71\"\u003e#71\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.hvar] Fixed vertical metrics fields copy/pasta error (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3884\"\u003e#3884\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMicro optimizations in ttLib and sstruct modules (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3878\"\u003e#3878\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3879\"\u003e#3879\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[unicodedata] Add Garay script to RTL_SCRIPTS (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3882\"\u003e#3882\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[roundingPen] Remove unreliable kwarg usage. Argument names aren’t consistent among\npoint pens’ \u003ccode\u003e.addComponent()\u003c/code\u003e implementations, in particular \u003ccode\u003ebaseGlyphName\u003c/code\u003e\nvs \u003ccode\u003eglyphName\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3880\"\u003e#3880\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.58.5 (released 2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[feaLib] Don't try to combine ligature \u0026amp; multisub rules (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3874\"\u003e#3874\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[feaLib/ast] Use weakref proxies to avoid cycles in visitor (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3873\"\u003e#3873\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[varLib.instancer] Fixed instancing CFF2 fonts where VarData contains more than 64k items (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3858\"\u003e#3858\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/fonttools/fonttools/commit/45600b474d3e5180bc21611ab9923d033b83a35c\"\u003e\u003ccode\u003e45600b4\u003c/code\u003e\u003c/a\u003e Release 4.59.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/44df30c6f8f1132d46ef9a02a7cf1a10607acd09\"\u003e\u003ccode\u003e44df30c\u003c/code\u003e\u003c/a\u003e Update NEWS.rst [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/8123c64c0a155c4be87363b381b15f2d149ca51c\"\u003e\u003ccode\u003e8123c64\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3914\"\u003e#3914\u003c/a\u003e from fonttools/add-some-name-typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/032aae62f4b6b500d4449b6118130473445b75b1\"\u003e\u003ccode\u003e032aae6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3912\"\u003e#3912\u003c/a\u003e from fonttools/varlib-unset-use-my-metrics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/67356c713170075b745c46826437b4c73c06c5dd\"\u003e\u003ccode\u003e67356c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3918\"\u003e#3918\u003c/a\u003e from CourtBouillon/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/c24dea4314c9136ad53b275f25183c922f13a2ec\"\u003e\u003ccode\u003ec24dea4\u003c/code\u003e\u003c/a\u003e Avoid negative hmtx values when creating font from variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/7ccaa0db41a180a9ceb1b18d2495a2734650e074\"\u003e\u003ccode\u003e7ccaa0d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3915\"\u003e#3915\u003c/a\u003e from fonttools/hb-issue-5499\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/b8cdef001ba66acb13db5eefb6c7b555bf441f66\"\u003e\u003ccode\u003eb8cdef0\u003c/code\u003e\u003c/a\u003e [subset] Fix shaping behaviour when pruning empty mark sets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/5d3c7a3b0b208c15a958f4b22df574092284576d\"\u003e\u003ccode\u003e5d3c7a3\u003c/code\u003e\u003c/a\u003e Add some typing for the name table\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/8b42edfcf84f13f131c00e37a96cd05d4128dc20\"\u003e\u003ccode\u003e8b42edf\u003c/code\u003e\u003c/a\u003e varLib_test: test inconsistent USE_MY_METRICS flag is unset\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fonttools/fonttools/compare/4.58.4...4.59.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipykernel` from 6.29.5 to 6.30.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/releases\"\u003eipykernel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.30.1\u003c/h2\u003e\n\u003ch2\u003e6.30.1\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release to fix a significant bug introduced in 6.30.0 that allowed control messages to be handled concurrently rather than sequentially which broke debugging in JupyterLab and VSCode.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v6.30.0...357c908eab4ae97bb17c5dcabc7ee981df8ecb29\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect use of asyncio.Lock to process a single control message at a time \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1416\"\u003e#1416\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackport: Remove links in changelog to github milestones that no longer exist \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1417\"\u003e#1417\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-07-21\u0026amp;to=2025-08-04\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-07-21..2025-08-04\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.30.0\u003c/h2\u003e\n\u003ch2\u003e6.30.0\u003c/h2\u003e\n\u003cp\u003eThis release fixes three bugs but is primarily a maintenance release bringing support for Python 3.13 and updating dependencies. It does not include subshells which will be in the upcoming 7.0.0 release. Users and downstream libraries that wish to avoid subshells should pin to \u003ccode\u003eipykernel \u0026lt; 7\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/b1283b144...d9bd546a4dc49a41c3ad5fcc5d4a61f259973182\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove control queue \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1210\"\u003e#1210\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet shell idle when message skipped by \u0026quot;should_handle\u0026quot; in \u0026quot;dispatch_shell\u0026quot; \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1395\"\u003e#1395\u003c/a\u003e (\u003ca href=\"https://github.com/dby-tmwctw\"\u003e\u003ccode\u003e@​dby-tmwctw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed error accessing sys.stdout/sys.stderr when those are None \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1247\"\u003e#1247\u003c/a\u003e (\u003ca href=\"https://github.com/gregory-shklover\"\u003e\u003ccode\u003e@​gregory-shklover\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow datetime or str in test_sequential_control_messages \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1219\"\u003e#1219\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e6.x backports \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1406\"\u003e#1406\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit and github actions \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1401\"\u003e#1401\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest more python versions on 6.x branch \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1398\"\u003e#1398\u003c/a\u003e (\u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBackports and extra changes to fix CI on 6.x branch \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1390\"\u003e#1390\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove nose import. \u003ca href=\"https://redirect.github...\n\n_Description has been truncated_","html_url":"https://github.com/manulthanura/ReviewClassifier/pull/62","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/manulthanura%2FReviewClassifier/issues/62","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/62/packages"}},{"old_version":"2.21.1","new_version":"2.21.2","update_type":"patch","path":null,"pr_created_at":"2025-09-15T09:51:39.000Z","version_change":"2.21.1 → 2.21.2","issue":{"uuid":"2828564819","node_id":"PR_kwDOAXK6hs6omHlT","number":972,"state":"closed","title":"Bump fastjsonschema from 2.21.1 to 2.21.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-15T14:49:02.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-15T09:51:39.000Z","updated_at":"2025-09-15T14:49:02.000Z","time_to_close":17843,"merged_at":"2025-09-15T14:49:02.000Z","merged_by":"unixorn","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":null,"ecosystem":"pip"},"body":"Bumps [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) from 2.21.1 to 2.21.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.21.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fastjsonschema\u0026package-manager=pip\u0026previous-version=2.21.1\u0026new-version=2.21.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/unixorn/git-extra-commands/pull/972","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/unixorn%2Fgit-extra-commands/issues/972","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/972/packages"}},{"old_version":"~=2.17.1","new_version":"~=2.21.2","update_type":"minor","path":"/tests","pr_created_at":"2025-09-15T08:04:22.000Z","version_change":"~=2.17.1 → ~=2.21.2","issue":{"uuid":"3416782762","node_id":"PR_kwDOD-Dy-s6okzny","number":344,"state":"open","title":"Update fastjsonschema requirement from ~=2.17.1 to ~=2.21.2 in /tests","user":"dependabot[bot]","labels":["dependencies","python","category: dependency_changes","Stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-15T08:04:22.000Z","updated_at":"2025-10-08T02:14:06.610Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"fastjsonschema","old_version":"~=2.17.1","new_version":"~=2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"}],"path":"/tests","ecosystem":"pip"},"body":"Updates the requirements on [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt\"\u003efastjsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.21.2 (2025-08-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regexp for IPv6 format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.1 (2024-12-02)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed ResourceWarning where file was not properly closed\u003c/li\u003e\n\u003cli\u003eFixed regexp for date format\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.21.0 (2024-11-27)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test suite\u003c/li\u003e\n\u003cli\u003eFixed detecting when infinity is reached with multipleOf\u003c/li\u003e\n\u003cli\u003eFixed that min/max items/lenght/properties can be float\u003c/li\u003e\n\u003cli\u003eFixed that everything with empty \u003ccode\u003enot\u003c/code\u003e is invalid\u003c/li\u003e\n\u003cli\u003eFixed missing re import when using regex pattern\u003c/li\u003e\n\u003cli\u003eImproved regexp for email format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for date format to comfort test suite\u003c/li\u003e\n\u003cli\u003eImproved regexp for ipv4 format to comfort test suite\u003c/li\u003e\n\u003cli\u003eAdded partial support of idn-hostname format\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edetailed_exceptions\u003c/code\u003e flag (default to True to avoid breaking change) - when used, results are twice as fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.20.0 (2024-06-15)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validations at compile time:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erequired\u003c/code\u003e must have unique items\u003c/li\u003e\n\u003cli\u003echecking if schema is not allowing \u003ccode\u003erequired\u003c/code\u003e items (item is required, but is not listed in properties)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.1 (2023-12-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed date format to accept only two digit months and days\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.19.0 (2023-11-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003euse_formats\u003c/code\u003e parameter to allow disable automatic assertions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.1 (2023-10-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazy import of urllib to improve import performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.18.0 (2023-07-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved error message for required props - only missing are reported\u003c/li\u003e\n\u003cli\u003eFixed support of boolean schema in if-then-else application\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.1 (2023-05-22)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed tests in sdist\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e=== 2.17.0 (2023-05-21)\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/horejsek/python-fastjsonschema/commit/4f1ed6d9c0462f3522a66f49c8f3dc482300101b\"\u003e\u003ccode\u003e4f1ed6d\u003c/code\u003e\u003c/a\u003e v2.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/982abcfa5da9b49f3f319ee74926d8c593afcb84\"\u003e\u003ccode\u003e982abcf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/196\"\u003e#196\u003c/a\u003e from ladybird12/ipv6-regex-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e688961a45894e72995341a96e4b2eec69fb13e1\"\u003e\u003ccode\u003ee688961\u003c/code\u003e\u003c/a\u003e Add tests for ipv4 and ipv6 formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/ea8c123989b7581aa00ec51cdb10f4b783a1afb8\"\u003e\u003ccode\u003eea8c123\u003c/code\u003e\u003c/a\u003e Correct the escaping of periods in the ipv6 format regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/720e489b9da40448a5c78052d80f4f729d45a57f\"\u003e\u003ccode\u003e720e489\u003c/code\u003e\u003c/a\u003e v2.21.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/cd4622c9ec11b50b40a5e484d1d0c863f993a4f8\"\u003e\u003ccode\u003ecd4622c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/191\"\u003e#191\u003c/a\u003e from Yarin78/yarin/date_pattern_fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/e8e34c887bf80971c0b398e8e8a590cf71b0bf32\"\u003e\u003ccode\u003ee8e34c8\u003c/code\u003e\u003c/a\u003e Fix date pattern regexp\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/3e0075ce829a503505a89ed463e250a102b198f5\"\u003e\u003ccode\u003e3e0075c\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/1c2bb0e0ddcc0099e01fe26dfa7ff90947fc62d3\"\u003e\u003ccode\u003e1c2bb0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/horejsek/python-fastjsonschema/issues/183\"\u003e#183\u003c/a\u003e from wbh-lab/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/horejsek/python-fastjsonschema/commit/acf076e3db8c081fd7c7636a6b8829dc6da1dea8\"\u003e\u003ccode\u003eacf076e\u003c/code\u003e\u003c/a\u003e v2.21.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/horejsek/python-fastjsonschema/compare/v2.17.1...v2.21.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ilyachur/openvino/pull/344","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachur%2Fopenvino/issues/344","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/344/packages"}}]}