{"id":4064,"name":"sphinx-click","ecosystem":"pip","repository_url":"https://github.com/click-contrib/sphinx-click","issues_count":162,"created_at":"2025-06-06T16:30:18.777Z","updated_at":"2025-06-06T16:30:18.777Z","purl":"pkg:pypi/sphinx-click","metadata":{"id":777228,"name":"sphinx-click","ecosystem":"pypi","description":"Sphinx extension that automatically documents click applications","homepage":"https://github.com/click-contrib/sphinx-click","licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/click-contrib/sphinx-click","keywords_array":["sphinx","click"],"namespace":null,"versions_count":43,"first_release_published_at":"2017-04-05T23:09:42.000Z","latest_release_published_at":"2024-05-15T14:49:15.000Z","latest_release_number":"6.0.0","last_synced_at":"2025-05-14T03:03:56.966Z","created_at":"2022-04-07T12:23:40.845Z","updated_at":"2025-05-14T03:03:56.966Z","registry_url":"https://pypi.org/project/sphinx-click/","install_command":"pip install sphinx-click --index-url https://pypi.org/simple","documentation_url":"https://sphinx-click.readthedocs.io/en/latest","metadata":{"funding":null,"documentation":"https://sphinx-click.readthedocs.io/en/latest","classifiers":["Development Status :: 5 - Production/Stable","Environment :: Console","Framework :: Sphinx :: Extension","Intended Audience :: Developers","Intended Audience :: Information Technology","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Topic :: Documentation","Topic :: Documentation :: Sphinx","Topic :: Utilities"],"normalized_name":"sphinx-click"},"repo_metadata":{"id":19569658,"uuid":"87362999","full_name":"click-contrib/sphinx-click","owner":"click-contrib","description":"A Sphinx plugin to automatically document click-based applications","archived":false,"fork":false,"pushed_at":"2024-12-28T17:31:04.000Z","size":172,"stargazers_count":216,"open_issues_count":18,"forks_count":58,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-01T13:06:22.240Z","etag":null,"topics":["cli","click","sphinx","sphinx-extension","sphinx-plugin"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/click-contrib.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"docs/contributing.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-05T22:41:38.000Z","updated_at":"2025-02-05T21:33:53.000Z","dependencies_parsed_at":"2024-04-05T10:27:38.360Z","dependency_job_id":"f793b022-19d0-4ef5-a283-ee78e0e0153e","html_url":"https://github.com/click-contrib/sphinx-click","commit_stats":{"total_commits":142,"total_committers":30,"mean_commits":4.733333333333333,"dds":"0.31690140845070425","last_synced_commit":"aa0d5b7bcda183d20c7b98a9a1c9acf1e003af97"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/click-contrib","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246670897,"owners_count":20815054,"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":"click-contrib","name":"click-contrib","uuid":"13245136","kind":"organization","description":"A collection of third-party code that extends the capabilities of Click. Message @untitaker if you want to put your project here.","email":null,"website":"http://click.pocoo.org/contrib/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/13245136?v=4","repositories_count":18,"last_synced_at":"2024-03-25T20:02:56.406Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/click-contrib","funding_links":[],"total_stars":1923,"followers":41,"following":0,"created_at":"2022-11-02T16:23:29.308Z","updated_at":"2024-03-25T20:02:56.424Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/click-contrib","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/click-contrib/repositories"},"tags":[{"name":"6.0.0","sha":"7f29172b10d4dc251af414ae01e38c3b970686a1","kind":"tag","published_at":"2024-05-15T14:47:45.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/6.0.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/6.0.0/manifests"},{"name":"5.2.1","sha":"0808867f139bdcb9048f89b706fe8b56a238152c","kind":"tag","published_at":"2024-05-14T12:52:29.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/5.2.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/5.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.2.1/manifests"},{"name":"5.2.0","sha":"e8cf016c28920029f33597c43e02024b1fc61ba4","kind":"tag","published_at":"2024-05-14T11:28:11.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/5.2.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/5.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.2.0/manifests"},{"name":"5.1.0","sha":"e3970c1468f91df194ccae94e3bcbbdab13d0c6d","kind":"tag","published_at":"2023-11-21T16:40:45.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/5.1.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.1.0/manifests"},{"name":"5.0.1","sha":"620ce83b652f6a2af671fa14584ff5efcae6cda0","kind":"tag","published_at":"2023-08-17T16:44:35.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/5.0.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.0.1/manifests"},{"name":"5.0.0","sha":"dcaaf56e350eac0221a4c0fc27cddb0b96aaa4ed","kind":"tag","published_at":"2023-08-17T16:17:52.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/5.0.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/5.0.0/manifests"},{"name":"4.4.0","sha":"0b81d33f0cdd444c5f520e94bca2543d7bbe335f","kind":"tag","published_at":"2022-12-06T12:58:46.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/4.4.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.4.0/manifests"},{"name":"4.3.0","sha":"3ff77a781c9f9a144d8e9985b744445d7d2a66cb","kind":"tag","published_at":"2022-07-04T10:57:19.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/4.3.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.3.0/manifests"},{"name":"4.2.0","sha":"fdea9dd47ea3310c9c26f17cdc801427815602c6","kind":"tag","published_at":"2022-06-20T12:14:13.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/4.2.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.2.0/manifests"},{"name":"4.1.0","sha":"302b655900597ecd07b9b73fff16a39e1ec55368","kind":"tag","published_at":"2022-05-30T10:38:27.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/4.1.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.1.0/manifests"},{"name":"4.0.3","sha":"27df09a00476431af7032ee4d2bffd1391b745e4","kind":"tag","published_at":"2022-04-19T16:21:50.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/4.0.3","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/4.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.0.3/manifests"},{"name":"4.0.2","sha":"d7ff221039218598185d9773eff7b47bbf378c81","kind":"tag","published_at":"2022-04-14T09:55:00.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/4.0.2","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.0.2/manifests"},{"name":"4.0.1","sha":"8c14e4edd8c2958de077eb149ff48597397b2d19","kind":"tag","published_at":"2022-04-12T14:33:42.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/4.0.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.0.1/manifests"},{"name":"4.0.0","sha":"c0242ee05ee15fe54d4b8009ca59433d0b91ec15","kind":"tag","published_at":"2022-04-07T11:41:31.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/4.0.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/4.0.0/manifests"},{"name":"3.1.0","sha":"7b170627729fb1583500e0e0cbfe538682ffda9f","kind":"tag","published_at":"2022-02-02T12:21:17.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/3.1.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.1.0/manifests"},{"name":"3.0.3","sha":"6aeee375067483337b5cfda98233d4fb1a1addb1","kind":"tag","published_at":"2022-01-27T18:10:14.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/3.0.3","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/3.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.0.3/manifests"},{"name":"3.0.2","sha":"ff5d3bc20c53340616552cdd9e15334309840915","kind":"tag","published_at":"2021-11-04T13:00:05.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/3.0.2","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.0.2/manifests"},{"name":"3.0.1","sha":"b8ed0f578e89fc20d4b9458aa6f6b7aef7087a48","kind":"tag","published_at":"2021-06-15T08:57:06.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/3.0.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.0.1/manifests"},{"name":"3.0.0","sha":"daa249d0f27c7206ec44f5e9f85e05f50381e064","kind":"tag","published_at":"2021-05-14T15:38:22.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/3.0.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/3.0.0/manifests"},{"name":"2.7.1","sha":"483fcca507af1f6cd0b5210c79b1eb540344150c","kind":"tag","published_at":"2021-03-19T15:00:16.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.7.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.7.1/manifests"},{"name":"2.7.0","sha":"de245b51ffd40c75c50bb86a3e761c1edb0947b1","kind":"tag","published_at":"2021-03-18T22:06:32.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.7.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.7.0/manifests"},{"name":"2.6.0","sha":"04477b82467b48c3e40ebcad98e5fbd515187685","kind":"tag","published_at":"2021-02-24T17:14:57.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.6.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.6.0/manifests"},{"name":"2.5.0","sha":"43ae645f473ce7ae3a3563480a1a11bbf956fc17","kind":"tag","published_at":"2020-07-23T12:15:01.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.5.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.5.0/manifests"},{"name":"2.4.0","sha":"d90b57608a16ae7878e0a26342cf2bf15e6b3b6f","kind":"tag","published_at":"2020-07-23T10:14:52.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.4.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.4.0/manifests"},{"name":"2.3.2","sha":"7a7240b54911e7de1f67d514165ddd01f9575967","kind":"tag","published_at":"2020-04-10T11:59:52.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.3.2","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.3.2/manifests"},{"name":"2.3.1","sha":"0e089e4e2a7e8138feafa7316c5a2090694c3dc6","kind":"tag","published_at":"2019-11-27T11:37:51.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.3.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.3.1/manifests"},{"name":"2.3.0","sha":"7cdab18d2142de821fedb7bb39eaf1d2bb79968f","kind":"tag","published_at":"2019-09-21T15:24:19.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.3.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.3.0/manifests"},{"name":"2.2.0","sha":"cbb1c629741925db947c00cf2ad9e965c1b3ba3f","kind":"tag","published_at":"2019-06-15T16:17:31.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.2.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.2.0/manifests"},{"name":"2.1.0","sha":"ec76d15697ec80e51486a6e3daa0aec60b04870f","kind":"tag","published_at":"2019-04-30T17:29:32.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.1.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.1.0/manifests"},{"name":"2.0.1","sha":"3caea1521bab9599583317c2501916b53c021309","kind":"tag","published_at":"2019-01-24T11:55:38.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.0.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.0.1/manifests"},{"name":"2.0.0","sha":"b5e5f89808b11fc2c0bcec180f0c9bf96f04f7e0","kind":"tag","published_at":"2019-01-22T22:24:53.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/2.0.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/2.0.0/manifests"},{"name":"1.4.1","sha":"b4beacc802ff633381da909f5ab9f1fd6b434353","kind":"tag","published_at":"2018-11-09T19:58:18.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.4.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.4.1/manifests"},{"name":"1.4.0","sha":"ba594e68f348b55daa7068c8eb40e5a6f15dc391","kind":"tag","published_at":"2018-10-11T13:15:15.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.4.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.4.0/manifests"},{"name":"1.3.0","sha":"676b8d4f78f52663d36516f467272387f749fced","kind":"tag","published_at":"2018-06-28T10:22:59.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.3.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.3.0/manifests"},{"name":"1.2.0","sha":"f9e79a04a0c28bf5c39410beb7460810ce7c866b","kind":"tag","published_at":"2018-04-26T18:58:03.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.2.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.2.0/manifests"},{"name":"1.1.0","sha":"7ce2b0453b261d385ce53e1af7de78980e903440","kind":"tag","published_at":"2018-03-22T14:14:44.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.1.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.1.0/manifests"},{"name":"1.0.4","sha":"6017e0327f05d22902c8854deb44a53a09284da9","kind":"tag","published_at":"2017-11-01T18:10:30.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.0.4","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.4/manifests"},{"name":"1.0.3","sha":"2d9e9f9dc25b172adc8655644758dd59e5c3a976","kind":"tag","published_at":"2017-08-25T12:45:41.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.0.3","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.3/manifests"},{"name":"1.0.2","sha":"bc45d8fd496caf5e6d1fca2c46757cda63cb57fb","kind":"tag","published_at":"2017-05-31T10:06:09.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.0.2","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.2/manifests"},{"name":"1.0.1","sha":"522ab88d86741f61cbe8ebe1930fcbb2e70c5cce","kind":"tag","published_at":"2017-05-04T17:46:39.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.0.1","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.1/manifests"},{"name":"1.0.0","sha":"e579e68e97060670e320d30c7dfae5bb652f8325","kind":"tag","published_at":"2017-04-05T23:10:01.000Z","download_url":"https://codeload.github.com/click-contrib/sphinx-click/tar.gz/1.0.0","html_url":"https://github.com/click-contrib/sphinx-click/releases/tag/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/click-contrib%2Fsphinx-click/tags/1.0.0/manifests"}]},"repo_metadata_updated_at":"2025-04-01T16:33:49.377Z","dependent_packages_count":348,"downloads":439321,"downloads_period":"last-month","dependent_repos_count":1952,"rankings":{"downloads":0.6644309369105009,"dependent_repos_count":0.24999523637125814,"dependent_packages_count":0.07050170537908958,"stargazers_count":4.709763739908058,"forks_count":5.69376093561188,"docker_downloads_count":1.1878584630628228,"average":2.0960518362072684},"purl":"pkg:pypi/sphinx-click","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/sphinx-click","docker_dependents_count":22,"docker_downloads_count":21991337,"usage_url":"https://repos.ecosyste.ms/usage/pypi/sphinx-click","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/sphinx-click/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sphinx-click/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sphinx-click/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sphinx-click/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sphinx-click/related_packages","maintainers":[{"uuid":"stephenfin","login":"stephenfin","name":null,"email":null,"url":null,"packages_count":14,"html_url":"https://pypi.org/user/stephenfin/","role":null,"created_at":"2023-02-23T15:19:21.000Z","updated_at":"2023-02-23T15:19:21.000Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/stephenfin/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690329,"maintainers_count":292761,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":98,"unique_repositories_count_past_30_days":0,"recent_issues":[{"uuid":"4048968457","node_id":"PR_kwDOKjagtM7JPsgV","number":322,"state":"closed","title":"bump: bump sphinx-click from 5.0.1 to 6.0.0","user":"dependabot[bot]","labels":["dependencies","python","stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-31T00:47:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-10T02:26:43.000Z","updated_at":"2026-05-31T00:47:54.000Z","time_to_close":7078862,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"bump","packages":[{"name":"sphinx-click","old_version":"5.0.1","new_version":"6.0.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sphinx-click](https://github.com/click-contrib/sphinx-click) from 5.0.1 to 6.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/7f29172b10d4dc251af414ae01e38c3b970686a1\"\u003e\u003ccode\u003e7f29172\u003c/code\u003e\u003c/a\u003e FIX Format string defaults correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/34470b694695c1f728ba9985a0e98e934d6c6ad0\"\u003e\u003ccode\u003e34470b6\u003c/code\u003e\u003c/a\u003e Remove errant prints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/f4ffef0ced79526ea4aaa6c97b52e1f17b7d6f12\"\u003e\u003ccode\u003ef4ffef0\u003c/code\u003e\u003c/a\u003e Drop support for click 7.x, Sphinx \u0026lt; 5.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/f0bf6e91c59e1b63289c4a43abc39e3ce5653c74\"\u003e\u003ccode\u003ef0bf6e9\u003c/code\u003e\u003c/a\u003e readthedocs: Use dirhtml builder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/0808867f139bdcb9048f89b706fe8b56a238152c\"\u003e\u003ccode\u003e0808867\u003c/code\u003e\u003c/a\u003e docs: Add discrete mocking section\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/8381e901c60a9f5867ec2dd7cc37b52467922cfe\"\u003e\u003ccode\u003e8381e90\u003c/code\u003e\u003c/a\u003e actions: Integrate tox-gh-actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/05b69cf96d2d3aa1e755700094660d2d063abfd0\"\u003e\u003ccode\u003e05b69cf\u003c/code\u003e\u003c/a\u003e Distinguish between click and asyncclick\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ac219509b8075aaf0baad400db8789e934d40b18\"\u003e\u003ccode\u003eac21950\u003c/code\u003e\u003c/a\u003e tests: Set maxDiff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/f099fe352f0c54ac332e49f9da5faddddf8c8f41\"\u003e\u003ccode\u003ef099fe3\u003c/code\u003e\u003c/a\u003e Skip test with click 7.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/82b5bcd23ab2756f3f0b3b07e3204deeb9b97284\"\u003e\u003ccode\u003e82b5bcd\u003c/code\u003e\u003c/a\u003e FIX If the \u003ccode\u003ehelp\u003c/code\u003e of an argument is \u003ccode\u003eNone\u003c/code\u003e, don't fail\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/5.0.1...6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx-click\u0026package-manager=pip\u0026previous-version=5.0.1\u0026new-version=6.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/xransum/valkyrie-tools/pull/322","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/xransum%2Fvalkyrie-tools/issues/322","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/322/packages"},{"uuid":"4048420979","node_id":"PR_kwDOKjagtM7JN-x8","number":296,"state":"open","title":"Bump sphinx-click from 5.0.1 to 6.2.0 in /docs","user":"dependabot[bot]","labels":["dependencies","python","stale"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-09T23:16:19.000Z","updated_at":"2026-03-24T00:22:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sphinx-click","old_version":"5.0.1","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":"/docs","ecosystem":"pip"},"body":"Bumps [sphinx-click](https://github.com/click-contrib/sphinx-click) from 5.0.1 to 6.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/58473a8dac250898e1dc7dfac5622dc938264bb4\"\u003e\u003ccode\u003e58473a8\u003c/code\u003e\u003c/a\u003e Migrate to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/0d4f938d799a669658fc2b0ef3ede100d9abf5ab\"\u003e\u003ccode\u003e0d4f938\u003c/code\u003e\u003c/a\u003e Drop support for Python \u0026lt; 3.10, add Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/073353abfc0f6a72ca3fc33b7272072ec422cccb\"\u003e\u003ccode\u003e073353a\u003c/code\u003e\u003c/a\u003e Migrate setuptools, mypy configuration to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/83a5a17736958a9e4119ecb9ad271e3f1bf223fc\"\u003e\u003ccode\u003e83a5a17\u003c/code\u003e\u003c/a\u003e Prefer Group over MultiCommand\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/d9705e8a369211d60db0279fafb58f7f7fa079a7\"\u003e\u003ccode\u003ed9705e8\u003c/code\u003e\u003c/a\u003e Bump actions versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/5.0.1...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx-click\u0026package-manager=pip\u0026previous-version=5.0.1\u0026new-version=6.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/xransum/valkyrie-tools/pull/296","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/xransum%2Fvalkyrie-tools/issues/296","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/296/packages"},{"uuid":"3998550450","node_id":"PR_kwDOMQqnZM7GsrLm","number":103,"state":"closed","title":"chore: Bump the development-dependencies group with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-17T06:18:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-27T01:25:33.000Z","updated_at":"2026-04-17T06:18:57.000Z","time_to_close":4251203,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: Bump","group_name":"development-dependencies","update_count":5,"packages":[{"name":"pre-commit","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pylint","old_version":"4.0.3","new_version":"4.0.5","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"ruff","old_version":"0.14.5","new_version":"0.15.4","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the development-dependencies group with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.4.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pylint](https://github.com/pylint-dev/pylint) | `4.0.3` | `4.0.5` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.5` | `0.15.4` |\n\nUpdates `pre-commit` from 4.4.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.4.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pylint` from 4.0.3 to 4.0.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/88e1ab7545a4af4aea15c305a154c164a95ab842\"\u003e\u003ccode\u003e88e1ab7\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.5, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10860\"\u003e#10860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/d96d489a1743d32b6bfa53fc0f69a4333209a146\"\u003e\u003ccode\u003ed96d489\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Relax isort version constraint to allow isort 8 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0b08ccb014c265700f244a885bdcbdfa3a03de46\"\u003e\u003ccode\u003e0b08ccb\u003c/code\u003e\u003c/a\u003e Fix dynamic color mapping for \u0026quot;fail-on\u0026quot; messages when using multiple reporter...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/154dba43276e8232a2e1cb8f90bfcc63886f3460\"\u003e\u003ccode\u003e154dba4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix FP for \u003ccode\u003einvalid-name\u003c/code\u003e with \u003ccode\u003etyping.Final\u003c/code\u003e on...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/7b73bfdedf275935b9c5b43a6aeda5cc648b4847\"\u003e\u003ccode\u003e7b73bfd\u003c/code\u003e\u003c/a\u003e Disable unspecified-encoding for py-version above Python 3.15 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10800\"\u003e#10800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cc98be8b7786dbc6692493fe9cedb8585af5518\"\u003e\u003ccode\u003e4cc98be\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix setting options for import order checker (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f0d30a27b510d69f846e3aaa0054cf0a1412923c\"\u003e\u003ccode\u003ef0d30a2\u003c/code\u003e\u003c/a\u003e Sync astroid version with requirements file again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/38bdf024648724e6aea017e62d3b57cb44097ec3\"\u003e\u003ccode\u003e38bdf02\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix \u003ccode\u003elogging-unsupported-format\u003c/code\u003e when logging ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f08c33ae3e691eed868e49c0d15270dc6e6a0d6c\"\u003e\u003ccode\u003ef08c33a\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Properly detect \u003ccode\u003eself.fail()\u003c/code\u003e as a terminating...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/e16f942166511d6fb4427e503a734152fae0c4fe\"\u003e\u003ccode\u003ee16f942\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.4, update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v4.0.3...v4.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.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.14.5 to 0.15.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.4\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-26.\u003c/p\u003e\n\u003cp\u003eThis is a follow-up release to 0.15.3 that resolves a panic when the new rule \u003ccode\u003ePLR1712\u003c/code\u003e was enabled with any rule that analyzes definitions, such as many of the \u003ccode\u003eANN\u003c/code\u003e or \u003ccode\u003eD\u003c/code\u003e rules.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on access to definitions after analyzing definitions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23588\"\u003e#23588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Suppress false positive in \u003ccode\u003eF821\u003c/code\u003e for names used before \u003ccode\u003edel\u003c/code\u003e in stub files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23550\"\u003e#23550\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify first-party import detection in Ruff (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23591\"\u003e#23591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003eimport-heading\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23568\"\u003e#23568\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/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\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/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GeObts\"\u003e\u003ccode\u003e@​GeObts\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.4\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.4\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip\"\u003eruff-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz\"\u003eruff-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz\"\u003eruff-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz\"\u003eruff-powerpc64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePPC64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-26.\u003c/p\u003e\n\u003cp\u003eThis is a follow-up release to 0.15.3 that resolves a panic when the new rule \u003ccode\u003ePLR1712\u003c/code\u003e was enabled with any rule that analyzes definitions, such as many of the \u003ccode\u003eANN\u003c/code\u003e or \u003ccode\u003eD\u003c/code\u003e rules.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on access to definitions after analyzing definitions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23588\"\u003e#23588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Suppress false positive in \u003ccode\u003eF821\u003c/code\u003e for names used before \u003ccode\u003edel\u003c/code\u003e in stub files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23550\"\u003e#23550\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify first-party import detection in Ruff (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23591\"\u003e#23591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003eimport-heading\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23568\"\u003e#23568\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/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\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/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GeObts\"\u003e\u003ccode\u003e@​GeObts\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.3\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop explicit support for \u003ccode\u003e.qmd\u003c/code\u003e file extension (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23572\"\u003e#23572\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis can now be enabled instead by setting the \u003ca href=\"https://docs.astral.sh/ruff/settings/#extension\"\u003e\u003ccode\u003eextension\u003c/code\u003e\u003c/a\u003e option:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e# ruff.toml\nextension = { qmd = \u0026quot;markdown\u0026quot; }\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff]\nextension = { qmd = \u0026quot;markdown\u0026quot; }\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eInclude configured extensions in file discovery (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23400\"\u003e#23400\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Allow suspicious imports in \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eS401\u003c/code\u003e-\u003ccode\u003eS415\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23441\"\u003e#23441\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Allow \u003ccode\u003eB901\u003c/code\u003e in pytest hook wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21931\"\u003e#21931\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-import-conventions\u003c/code\u003e] Add missing conventions from upstream (\u003ccode\u003eICN001\u003c/code\u003e, \u003ccode\u003eICN002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21373\"\u003e#21373\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f14edd8661e2803254f89265548c7487f47a09f6\"\u003e\u003ccode\u003ef14edd8\u003c/code\u003e\u003c/a\u003e Bump 0.15.4 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23595\"\u003e#23595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/fd09d370076ab585444fd39f0fee79bf29280b68\"\u003e\u003ccode\u003efd09d37\u003c/code\u003e\u003c/a\u003e Fix panic on access to definitions after analyzing definitions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23588\"\u003e#23588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/81d655fadce087b792e524ed1964e9bcc31b73cd\"\u003e\u003ccode\u003e81d655f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyflakes\u003c/code\u003e] suppress false positive in \u003ccode\u003eF821\u003c/code\u003e for names used before \u003ccode\u003edel\u003c/code\u003e in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/625b4f5a672d1baaa6f25e0999ca428f3f2522f1\"\u003e\u003ccode\u003e625b4f5\u003c/code\u003e\u003c/a\u003e [ruff] docs: Clarify first-party import detection in Ruff (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23591\"\u003e#23591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/60facfa0bc02689637e25237f0df5abfc2f27054\"\u003e\u003ccode\u003e60facfa\u003c/code\u003e\u003c/a\u003e one word typo fix in a \u003ccode\u003ewhile_loop.md\u003c/code\u003e test case (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23589\"\u003e#23589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/fbb9fa75cc1915973a739da0ec469094176bfdc6\"\u003e\u003ccode\u003efbb9fa7\u003c/code\u003e\u003c/a\u003e docs: fix incorrect import-heading example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23568\"\u003e#23568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5bc49a941279c9100ff834edae1cb63053aeec93\"\u003e\u003ccode\u003e5bc49a9\u003c/code\u003e\u003c/a\u003e Increase the ruleset size to 16 bits (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23586\"\u003e#23586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a62ba8c6e2bac0b899d90fd30a1b26c07aac44bb\"\u003e\u003ccode\u003ea62ba8c\u003c/code\u003e\u003c/a\u003e [ty] Fix overloaded callable assignability for unary Callable targets (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23277\"\u003e#23277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e5f2f36a3f49b45fd7506d42b12c495c2517e936\"\u003e\u003ccode\u003ee5f2f36\u003c/code\u003e\u003c/a\u003e Bump 0.15.3 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23585\"\u003e#23585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0e19fc9a61477e71abc4eb76f05a129b6b9ab873\"\u003e\u003ccode\u003e0e19fc9\u003c/code\u003e\u003c/a\u003e [ty] defer calculating conjunctions in narrowing constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23552\"\u003e#23552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.5...0.15.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.","html_url":"https://github.com/MrShark/coc-generator/pull/103","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrShark%2Fcoc-generator/issues/103","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/103/packages"},{"uuid":"3917963992","node_id":"PR_kwDOJmW1lc7CkIn-","number":132,"state":"closed","title":"chore(deps): bump the bowtie-dependencies group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-16T17:57:18.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-09T20:20:04.000Z","updated_at":"2026-02-16T17:57:20.000Z","time_to_close":596234,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"bowtie-dependencies","update_count":16,"packages":[{"name":"aiodocker","old_version":"0.24.0","new_version":"0.25.0","repository_url":"https://github.com/aio-libs/aiodocker"},{"name":"diagnostic","old_version":"2.1.0","new_version":"3.0.0","repository_url":"https://github.com/pradyunsg/diagnostic"},{"name":"jsonschema","old_version":"4.25.1","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.2","repository_url":"https://github.com/Textualize/rich"},{"name":"rich-click","old_version":"1.9.4","new_version":"1.9.7","repository_url":"https://github.com/ewels/rich-click"},{"name":"rpds-py","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"url-py","old_version":"0.18.0","new_version":"0.19.0","repository_url":"https://github.com/crate-py/url"},{"name":"hypothesis","old_version":"6.148.2","new_version":"6.151.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"sphinx-substitution-extensions","old_version":"2025.1.2","new_version":"2026.1.12","repository_url":"https://github.com/adamtheturtle/sphinx-substitution-extensions"},{"name":"sphinxcontrib-spelling","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the bowtie-dependencies group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiodocker](https://github.com/aio-libs/aiodocker) | `0.24.0` | `0.25.0` |\n| [diagnostic](https://github.com/pradyunsg/diagnostic) | `2.1.0` | `3.0.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.2` |\n| [rich-click](https://github.com/ewels/rich-click) | `1.9.4` | `1.9.7` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.29.0` | `0.30.0` |\n| [url-py](https://github.com/crate-py/url) | `0.18.0` | `0.19.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.148.2` | `6.151.4` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.1.0` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [sphinx-substitution-extensions](https://github.com/adamtheturtle/sphinx-substitution-extensions) | `2025.1.2` | `2026.1.12` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.1` | `8.0.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n\n\nUpdates `aiodocker` from 0.24.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiodocker/releases\"\u003eaiodocker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 support, updating dependencies such as aiohttp (minimum 3.8 to 3.10) and async-timeout (minimum to 5.0) for stdlib TaskGroup and timeout compatibility in Python 3.11+ (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e**kwargs\u003c/code\u003e with explicit parameters in \u003ccode\u003eDockerContainer.{stop,restart,kill,delete}()\u003c/code\u003e methods, accepting \u003ccode\u003et\u003c/code\u003e for server-side stop timeout and \u003ccode\u003etimeout\u003c/code\u003e for client-side request timeouts for consistency with other methods covered in the previous PRs \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/990\"\u003e#990\u003c/a\u003e; since this is a BREAKING CHANGE for those who have used the \u003ccode\u003etimeout\u003c/code\u003e argument for the \u003ccode\u003eDockerContainer.restart()\u003c/code\u003e method calls, the users should replace it with \u003ccode\u003et\u003c/code\u003e to keep the intended semantics (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue authenticating against private registries where the \u003ccode\u003eX-Registry-Auth\u003c/code\u003e header would require URL-safe substitutions. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Docker context endpoints with TLS, reading configuration from \u003ccode\u003e~/.docker/contexts/\u003c/code\u003e and respecting \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e environment variable and \u003ccode\u003eSkipTLSVerify\u003c/code\u003e option. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SSH protocol support for secure connections to remote Docker instances via \u0026quot;ssh://\u0026quot; URLs with mandatory host key verification (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce the client-level \u003ccode\u003etimeout\u003c/code\u003e configuration which becomes the base timeout configuration while still allowing legacy individual per-API timeouts and merging it into the base timeout.  Now setting individual float (total) timeout per-API call is HIGHLY DISCOURAGED in favor of composable timeouts via stdlib's \u003ccode\u003easyncio.timeout()\u003c/code\u003e async context manager. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the CI workflows to expand the test matrix for aiohttp 3.10/3.13 releases and let tests use the prebuilt artifact to ensure consistency with the release (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIsolate the docker instance for swarm and service tests via a docker-in-docker compose stack to avoid affecting the user environment (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply the default cooldown period (7 days) to the dependabot configuration (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/984\"\u003e#984\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/aio-libs/aiodocker/blob/main/CHANGES.rst\"\u003eaiodocker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.25.0 (2025-12-20)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 support, updating dependencies such as aiohttp (minimum 3.8 to 3.10) and async-timeout (minimum to 5.0) for stdlib TaskGroup and timeout compatibility in Python 3.11+ (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e**kwargs\u003c/code\u003e with explicit parameters in \u003ccode\u003eDockerContainer.{stop,restart,kill,delete}()\u003c/code\u003e methods, accepting \u003ccode\u003et\u003c/code\u003e for server-side stop timeout and \u003ccode\u003etimeout\u003c/code\u003e for client-side request timeouts for consistency with other methods covered in the previous PRs \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/990\"\u003e#990\u003c/a\u003e; since this is a BREAKING CHANGE for those who have used the \u003ccode\u003etimeout\u003c/code\u003e argument for the \u003ccode\u003eDockerContainer.restart()\u003c/code\u003e method calls, the users should replace it with \u003ccode\u003et\u003c/code\u003e to keep the intended semantics (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue authenticating against private registries where the \u003ccode\u003eX-Registry-Auth\u003c/code\u003e header would require URL-safe substitutions. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Docker context endpoints with TLS, reading configuration from \u003ccode\u003e~/.docker/contexts/\u003c/code\u003e and respecting \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e environment variable and \u003ccode\u003eSkipTLSVerify\u003c/code\u003e option. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SSH protocol support for secure connections to remote Docker instances via \u0026quot;ssh://\u0026quot; URLs with mandatory host key verification (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce the client-level \u003ccode\u003etimeout\u003c/code\u003e configuration which becomes the base timeout configuration while still allowing legacy individual per-API timeouts and merging it into the base timeout.  Now setting individual float (total) timeout per-API call is HIGHLY DISCOURAGED in favor of composable timeouts via stdlib's \u003ccode\u003easyncio.timeout()\u003c/code\u003e async context manager. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the CI workflows to expand the test matrix for aiohttp 3.10/3.13 releases and let tests use the prebuilt artifact to ensure consistency with the release (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIsolate the docker instance for swarm and service tests via a docker-in-docker compose stack to avoid affecting the user environment (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply the default cooldown period (7 days) to the dependabot configuration (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/984\"\u003e#984\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/aio-libs/aiodocker/commit/53cb28682c2e892c4631b6fd3cff3e515e0c791b\"\u003e\u003ccode\u003e53cb286\u003c/code\u003e\u003c/a\u003e ci: Update sigstore action to avoid using deprecated artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/cf67541d5a8adfc6787cc7a8a239ca8099dee3f5\"\u003e\u003ccode\u003ecf67541\u003c/code\u003e\u003c/a\u003e Release v0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/872a9c24ee9d034572ebda1d6d1dc1a93ca877be\"\u003e\u003ccode\u003e872a9c2\u003c/code\u003e\u003c/a\u003e Add missing consistent client timeout in DockerContainer.commit() (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/992\"\u003e#992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/b2c0cd712e3b9891f183e53ce22adac49fdcd1a7\"\u003e\u003ccode\u003eb2c0cd7\u003c/code\u003e\u003c/a\u003e Even more consistent timeouts for all long-running APIs (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/972d3e1d26f7fc8fc148f6084f3febcc01475b13\"\u003e\u003ccode\u003e972d3e1\u003c/code\u003e\u003c/a\u003e Make per-call and contextual timeout handling consistent across all long-runn...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/d2718327a3203a74e7453f6551b0680d7a834d13\"\u003e\u003ccode\u003ed271832\u003c/code\u003e\u003c/a\u003e Bump Ruff version in pre-commit-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/c2ddcfd6b5bd7e2ae4e69d6fd9a0973165e30370\"\u003e\u003ccode\u003ec2ddcfd\u003c/code\u003e\u003c/a\u003e Bump the ci group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/989\"\u003e#989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/ede0268ccb12564a11afcd302bee7ff757f03950\"\u003e\u003ccode\u003eede0268\u003c/code\u003e\u003c/a\u003e feat: add SSH support for remote Docker connections (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/b5f93e01079f8fd72261d5d5529a327a9bb8fb2b\"\u003e\u003ccode\u003eb5f93e0\u003c/code\u003e\u003c/a\u003e feat: Add context arg and docs for config precedence (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/988\"\u003e#988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/e992db2fe2b87ff75733d46e99605ad8a173a580\"\u003e\u003ccode\u003ee992db2\u003c/code\u003e\u003c/a\u003e Add support for Docker context endpoints (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiodocker/compare/v0.24.0...v0.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `diagnostic` from 2.1.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/diagnostic/releases\"\u003ediagnostic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8, 3.9.\u003c/li\u003e\n\u003cli\u003eAdd explicitly tested support for Python 3.12, 3.13 and 3.14.\u003c/li\u003e\n\u003cli\u003eUse the standard library \u003ccode\u003eargparse\u003c/code\u003e for boolean options.\u003c/li\u003e\n\u003cli\u003eModernise the code and tooling used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.0\"\u003ehttps://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.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/pradyunsg/diagnostic/blob/main/docs/changelog.md\"\u003ediagnostic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.0.0 (2025-12-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8, 3.9.\u003c/li\u003e\n\u003cli\u003eAdd explicitly tested support for Python 3.12, 3.13 and 3.14.\u003c/li\u003e\n\u003cli\u003eUse the standard library \u003ccode\u003eargparse\u003c/code\u003e for boolean options.\u003c/li\u003e\n\u003cli\u003eModernise the code and tooling used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/diagnostic/commit/56439f60a59cff430fd1316fc228a8d7ea6dce1c\"\u003e\u003ccode\u003e56439f6\u003c/code\u003e\u003c/a\u003e Release 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/e44dd86515456096ec3a5daa61afc79275f468b4\"\u003e\u003ccode\u003ee44dd86\u003c/code\u003e\u003c/a\u003e Drop manual provenance and build pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/36a5afd0d8c07fc103bde9d1f4e9e5218f2561a7\"\u003e\u003ccode\u003e36a5afd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/45\"\u003e#45\u003c/a\u003e from pradyunsg/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/37f95c77071a8ca27369da56e21ee9b88e82023a\"\u003e\u003ccode\u003e37f95c7\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 6 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/da2208610603e7203fc6b42e0cb6747be1ee17ea\"\u003e\u003ccode\u003eda22086\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/43\"\u003e#43\u003c/a\u003e from pradyunsg/argparse-builtin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/fa629882117dd1741c31ad36662b1103eea447f8\"\u003e\u003ccode\u003efa62988\u003c/code\u003e\u003c/a\u003e Use the stdlib implementation for boolean options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/c231f585393747dfe8bfd9c16db24ac6d2d4c944\"\u003e\u003ccode\u003ec231f58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/42\"\u003e#42\u003c/a\u003e from pradyunsg/modernise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/5f45e5d8284ec00daf1462215b8e00a405b056cb\"\u003e\u003ccode\u003e5f45e5d\u003c/code\u003e\u003c/a\u003e Add and test support for Python 3.12-3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/ff5ad05a80d78d3cc7cb478896fe1f00b005d106\"\u003e\u003ccode\u003eff5ad05\u003c/code\u003e\u003c/a\u003e Fix pyright deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/679cc98ff965b43b970259625dcc3a1c88f165c4\"\u003e\u003ccode\u003e679cc98\u003c/code\u003e\u003c/a\u003e Pacify docutils \u0026lt;-\u0026gt; pyright errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.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.1 to 4.26.0\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.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1400\"\u003epython-jsonschema/jsonschema#1400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1405\"\u003epython-jsonschema/jsonschema#1405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.5.0 to 6.6.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/python-jsonschema/jsonschema/pull/1406\"\u003epython-jsonschema/jsonschema#1406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1407\"\u003epython-jsonschema/jsonschema#1407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1413\"\u003epython-jsonschema/jsonschema#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.0 to 6.6.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1412\"\u003epython-jsonschema/jsonschema#1412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.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/python-jsonschema/jsonschema/pull/1410\"\u003epython-jsonschema/jsonschema#1410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.2 to 2.3.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/python-jsonschema/jsonschema/pull/1409\"\u003epython-jsonschema/jsonschema#1409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1411\"\u003epython-jsonschema/jsonschema#1411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidators: avoid \u003ccode\u003eurllib.request\u003c/code\u003e at import-time by \u003ca href=\"https://github.com/gudnimg\"\u003e\u003ccode\u003e@​gudnimg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1416\"\u003epython-jsonschema/jsonschema#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.1 to 6.8.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/python-jsonschema/jsonschema/pull/1417\"\u003epython-jsonschema/jsonschema#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.3 to 2.3.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1418\"\u003epython-jsonschema/jsonschema#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1415\"\u003epython-jsonschema/jsonschema#1415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.4 to 2.4.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1419\"\u003epython-jsonschema/jsonschema#1419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1420\"\u003epython-jsonschema/jsonschema#1420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.8.0 to 7.1.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/python-jsonschema/jsonschema/pull/1421\"\u003epython-jsonschema/jsonschema#1421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1424\"\u003epython-jsonschema/jsonschema#1424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.0 to 7.1.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1423\"\u003epython-jsonschema/jsonschema#1423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1425\"\u003epython-jsonschema/jsonschema#1425\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1429\"\u003epython-jsonschema/jsonschema#1429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1431\"\u003epython-jsonschema/jsonschema#1431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.1 to 2.4.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/python-jsonschema/jsonschema/pull/1432\"\u003epython-jsonschema/jsonschema#1432\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.1 to 7.1.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/python-jsonschema/jsonschema/pull/1430\"\u003epython-jsonschema/jsonschema#1430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1434\"\u003epython-jsonschema/jsonschema#1434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.2 to 7.1.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1435\"\u003epython-jsonschema/jsonschema#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1436\"\u003epython-jsonschema/jsonschema#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1437\"\u003epython-jsonschema/jsonschema#1437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.2 to 2.5.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/python-jsonschema/jsonschema/pull/1438\"\u003epython-jsonschema/jsonschema#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1439\"\u003epython-jsonschema/jsonschema#1439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument \u003ccode\u003euuid\u003c/code\u003e format by \u003ca href=\"https://github.com/sim642\"\u003e\u003ccode\u003e@​sim642\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1440\"\u003epython-jsonschema/jsonschema#1440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1441\"\u003epython-jsonschema/jsonschema#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.4 to 7.1.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1442\"\u003epython-jsonschema/jsonschema#1442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1443\"\u003epython-jsonschema/jsonschema#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/gudnimg\"\u003e\u003ccode\u003e@​gudnimg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1416\"\u003epython-jsonschema/jsonschema#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sim642\"\u003e\u003ccode\u003e@​sim642\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1440\"\u003epython-jsonschema/jsonschema#1440\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.1...v4.26.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.25.1...v4.26.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDecrease import time by delaying importing of \u003ccode\u003eurllib.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1416\"\u003e#1416\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/a7277432b0f7bcd0551f6e589d30457017125df4\"\u003e\u003ccode\u003ea727743\u003c/code\u003e\u003c/a\u003e Add a changelog entry for 4.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6d28c13efbbd6cf136143fdbb18f79d4476091f6\"\u003e\u003ccode\u003e6d28c13\u003c/code\u003e\u003c/a\u003e Update the lockfile.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/739499edc33c007ff62180c9fef61dbf5480bb7b\"\u003e\u003ccode\u003e739499e\u003c/code\u003e\u003c/a\u003e Update pre-commit hooks.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/cb2d77980713577f65cc7e7c7c115932206393fd\"\u003e\u003ccode\u003ecb2d779\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1443\"\u003e#1443\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/e6bbbb7c5bcdb32a654572d17bfce264aefd1f9d\"\u003e\u003ccode\u003ee6bbbb7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/d56037a88faac4881214c6674a785b4abd428617\"\u003e\u003ccode\u003ed56037a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1442\"\u003e#1442\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/e54ce13fb590a5c17fb702431598a382de6e68f9\"\u003e\u003ccode\u003ee54ce13\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 7.1.4 to 7.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1f7c9fbd01d9c2f8ddd98065324062f7e122dbe1\"\u003e\u003ccode\u003e1f7c9fb\u003c/code\u003e\u003c/a\u003e Partially update docs requirements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/241aec982bc8c867f276779faf20d49d9774532f\"\u003e\u003ccode\u003e241aec9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1441\"\u003e#1441\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/2818efb4fa446ed4fa7815b4e09a7b4b7c633852\"\u003e\u003ccode\u003e2818efb\u003c/code\u003e\u003c/a\u003e Apache-2.0 -\u0026gt; nongpl\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.25.1...v4.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.2.0 to 14.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe ZWJy release\u003c/h2\u003e\n\u003cp\u003eA fix for \u003ccode\u003ecell_len\u003c/code\u003e edge cases\u003c/p\u003e\n\u003ch2\u003e[14.3.2] - 2026-02-01\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed solo ZWJ crash \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3953\"\u003eTextualize/rich#3953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed control codes reporting width of 1 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3953\"\u003eTextualize/rich#3953\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Nerdy Fix release\u003c/h2\u003e\n\u003cp\u003eFixed issue with characters outside of unicode range reporting 0 cell size\u003c/p\u003e\n\u003ch2\u003e[14.3.1] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characters out of unicode range reporting a cell size if 0 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3944\"\u003eTextualize/rich#3944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe more emojis release\u003c/h2\u003e\n\u003cp\u003eRich now has support for multi-codepoint emojis. There have also been some Markdown improvements, and a number of fixes. See the release notes below for details.\u003c/p\u003e\n\u003ch2\u003e[14.3.0] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIPython now respects when a \u003ccode\u003eConsole\u003c/code\u003e instance is passed to \u003ccode\u003epretty.install\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3915\"\u003eTextualize/rich#3915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extraneous blank line on non-interactive disabled \u003ccode\u003eProgress\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3905\"\u003eTextualize/rich#3905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extra padding on first cell in columns \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3935\"\u003eTextualize/rich#3935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed trailing whitespace removed when soft_wrap=True \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3937\"\u003eTextualize/rich#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed style new-lines when soft_wrap = True and a print style is set \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for some multi-codepopint glyphs (will fix alignment issues for these characters) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eUNICODE_VERSION\u003c/code\u003e environment variable \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elast_render_height\u003c/code\u003e property to LiveRender \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose locals_max_depth and locals_overflow in traceback.install \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3906/\"\u003eTextualize/rich#3906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSegment.split_lines_terminator\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecells.cell_len\u003c/code\u003e now has a \u003ccode\u003eunicode_version\u003c/code\u003e parameter (that you probably should never change) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLive will not write a new line if there was nothing rendered \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown headers \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown tables, added \u003ccode\u003emarkdown.table.header\u003c/code\u003e and \u003ccode\u003emarkdown.table.border\u003c/code\u003e styles \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown rules \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.3.2] - 2026-02-01\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed solo ZWJ crash \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3953\"\u003eTextualize/rich#3953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed control codes reporting width of 1 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3953\"\u003eTextualize/rich#3953\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.1] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characters out of unicode range reporting a cell size if 0 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3944\"\u003eTextualize/rich#3944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.0] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIPython now respects when a \u003ccode\u003eConsole\u003c/code\u003e instance is passed to \u003ccode\u003epretty.install\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3915\"\u003eTextualize/rich#3915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extraneous blank line on non-interactive disabled \u003ccode\u003eProgress\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3905\"\u003eTextualize/rich#3905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extra padding on first cell in columns \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3935\"\u003eTextualize/rich#3935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed trailing whitespace removed when soft_wrap=True \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3937\"\u003eTextualize/rich#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed style new-lines when soft_wrap = True and a print style is set \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for some multi-codepopint glyphs (will fix alignment issues for these characters) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eUNICODE_VERSION\u003c/code\u003e environment variable \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elast_render_height\u003c/code\u003e property to LiveRender \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose locals_max_depth and locals_overflow in traceback.install \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3906/\"\u003eTextualize/rich#3906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSegment.split_lines_terminator\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecells.cell_len\u003c/code\u003e now has a \u003ccode\u003eunicode_version\u003c/code\u003e parameter (that you probably should never change) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLive will not write a new line if there was nothing rendered \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown headers \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown tables, added \u003ccode\u003emarkdown.table.header\u003c/code\u003e and \u003ccode\u003emarkdown.table.border\u003c/code\u003e styles \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown rules \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/0752ff047295131d98f24284e1d949300cd6f4c1\"\u003e\u003ccode\u003e0752ff0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3953\"\u003e#3953\u003c/a\u003e from Textualize/zwj-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/54ae0cfbb8d43ccc8f56bf57019b9a22c252eefa\"\u003e\u003ccode\u003e54ae0cf\u003c/code\u003e\u003c/a\u003e simplify\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/07edb85f7e09ae76f0a0c9ac4c2059803ce8eb9a\"\u003e\u003ccode\u003e07edb85\u003c/code\u003e\u003c/a\u003e refine\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/31930ddc842d9e1cd224327d5f6c22eff4a87f82\"\u003e\u003ccode\u003e31930dd\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/454fcfc92c66556f9538d420b5bd3ba95b1f57b7\"\u003e\u003ccode\u003e454fcfc\u003c/code\u003e\u003c/a\u003e stupid comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/13f87a4007f629c00b491286034751d53ae9d63c\"\u003e\u003ccode\u003e13f87a4\u003c/code\u003e\u003c/a\u003e Fix ZWJ and edge cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/1d402e0c59f8765e420a5a4440eb2fca7465d1ae\"\u003e\u003ccode\u003e1d402e0\u003c/code\u003e\u003c/a\u003e fix dates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/f2a1c3b8a8f7edc41b1954cc3fb66bae32293a5e\"\u003e\u003ccode\u003ef2a1c3b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3944\"\u003e#3944\u003c/a\u003e from Textualize/nerf-fonts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/2e5a5dad304b59d75aa4b4ed6cae031693e3615e\"\u003e\u003ccode\u003e2e5a5da\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/73ee8232e7ea72a90130ccf67d8ffefd4122e9f4\"\u003e\u003ccode\u003e73ee823\u003c/code\u003e\u003c/a\u003e fix fonts\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.2.0...v14.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich-click` from 1.9.4 to 1.9.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ewels/rich-click/releases\"\u003erich-click's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eclick_version\u003c/code\u003e check when build metadata is included. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/324\"\u003e#324\u003c/a\u003e] (\u003ca href=\"https://github.com/ccoulombe\"\u003e\u003ccode\u003e@​ccoulombe\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.9.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix minor Typer incompatibilities, most notably default panel placements.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edefault_panels_first\u003c/code\u003e config option which places default panels above user-defined panels.\u003c/li\u003e\n\u003cli\u003eFix to \u003ccode\u003e.pyi\u003c/code\u003e file [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/319\"\u003e#319\u003c/a\u003e] (\u003ca href=\"https://github.com/nemowang2003\"\u003e\u003ccode\u003e@​nemowang2003\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.9.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.9.5.dev0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\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/ewels/rich-click/blob/main/CHANGELOG.md\"\u003erich-click's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.7 (2026-01-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eclick_version\u003c/code\u003e check when build metadata is included. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/324\"\u003e#324\u003c/a\u003e] (\u003ca href=\"https://github.com/ccoulombe\"\u003e\u003ccode\u003e@​ccoulombe\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.9.6 (2026-01-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix minor Typer incompatibilities, most notably default panel placements.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edefault_panels_first\u003c/code\u003e config option which places default panels above user-defined panels.\u003c/li\u003e\n\u003cli\u003eFix to \u003ccode\u003e.pyi\u003c/code\u003e file [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/319\"\u003e#319\u003c/a\u003e] (\u003ca href=\"https://github.com/nemowang2003\"\u003e\u003ccode\u003e@​nemowang2003\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.9.5 (2025-12-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\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/ewels/rich-click/commit/7f554a3f048917f17ea5089ae7332c46951136f0\"\u003e\u003ccode\u003e7f554a3\u003c/code\u003e\u003c/a\u003e version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/8fc129c15def897c000280ee57a2e88c0b0b4e5b\"\u003e\u003ccode\u003e8fc129c\u003c/code\u003e\u003c/a\u003e click_version fix (\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/324\"\u003e#324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/0eed6b20bb91f4123d445c21e840fba217f7b4f7\"\u003e\u003ccode\u003e0eed6b2\u003c/code\u003e\u003c/a\u003e Generate new screengrabs with rich-codex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/7f2bb5ab52cdb289459f324fb603c177915a7da3\"\u003e\u003ccode\u003e7f2bb5a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/323\"\u003e#323\u003c/a\u003e from dwreeves/fix-rich-14-3-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/e9c8b133bc100a9bf03191cbbcc497d39d0af6b3\"\u003e\u003ccode\u003ee9c8b13\u003c/code\u003e\u003c/a\u003e Fix failing unit-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/5cb336fd257bc9670fba103a44185f75eb07b8de\"\u003e\u003ccode\u003e5cb336f\u003c/code\u003e\u003c/a\u003e Generate new screengrabs with rich-codex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/9096d02dbeda5c24d4bf5c363077b03111960a1c\"\u003e\u003ccode\u003e9096d02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/320\"\u003e#320\u003c/a\u003e from dwreeves/minor-typer-compat-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/f5e4b108fa9965cf14fc745d289538719d9f5891\"\u003e\u003ccode\u003ef5e4b10\u003c/code\u003e\u003c/a\u003e Fix Typer incompatibilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/cf09124fd4fae9fea061c1af0c3ca49eb45f3398\"\u003e\u003ccode\u003ecf09124\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/319\"\u003e#319\u003c/a\u003e from nemowang2003/fix-pyi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/d97ac2d49280ce973c15b945c7403d094a1e9e46\"\u003e\u003ccode\u003ed97ac2d\u003c/code\u003e\u003c/a\u003e Fix incorrect type hint in rich_command.pyi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ewels/rich-click/compare/v1.9.4...v1.9.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rpds-py` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/rpds/releases\"\u003erpds-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.30.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/202\"\u003ecrate-py/rpds#202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/203\"\u003ecrate-py/rpds#203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to PyO3 0.27.2 by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/204\"\u003ecrate-py/rpds#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.29.0...v0.30.0\"\u003ehttps://github.com/crate-py/rpds/compare/v0.29.0...v0.30.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/crate-py/rpds/commit/c38c9795cc6a1b4d95bd1863e7164f889a638adf\"\u003e\u003ccode\u003ec38c979\u003c/code\u003e\u003c/a\u003e Tag a release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/09c753822ffc4aac239f590d0aa33dbfcf6e6658\"\u003e\u003ccode\u003e09c7538\u003c/code\u003e\u003c/a\u003e Update the pre-commit link for zizmor.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/086997f24d385064e5b45656996462e45c9b9806\"\u003e\u003ccode\u003e086997f\u003c/code\u003e\u003c/a\u003e Remove an unneeded section of the pyproject.toml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/76909337a92fbd0e782137b7296ef2a620d17706\"\u003e\u003ccode\u003e7690933\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/204\"\u003e#204\u003c/a\u003e from edgarrmondragon/pyo3-0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/84f9bd13822be3d2d70c04391cb9bcfa7f6d565f\"\u003e\u003ccode\u003e84f9bd1\u003c/code\u003e\u003c/a\u003e Update to PyO3 0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5cb6bc4bbdad1fe12bf9b471cbe0b6e691846a6d\"\u003e\u003ccode\u003e5cb6bc4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/203\"\u003e#203\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/677a6dbb757e0551edade218d24ac731709c59f4\"\u003e\u003ccode\u003e677a6db\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5f1fa205f836761a15c71df017443e7860ce2be6\"\u003e\u003ccode\u003e5f1fa20\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/202\"\u003e#202\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/6657a51e8a3ea2559d5b168ef69a2e44f47353ce\"\u003e\u003ccode\u003e6657a51\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.29.0...v0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `url-py` from 0.18.0 to 0.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/url/releases\"\u003eurl-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.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/crate-py/url/pull/138\"\u003ecrate-py/url#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.29.11 to 3.30.1 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/crate-py/url/pull/139\"\u003ecrate-py/url#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.2 to 2.3.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/crate-py/url/pull/140\"\u003ecrate-py/url#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/141\"\u003ecrate-py/url#141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.0 to 6.6.1 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/crate-py/url/pull/142\"\u003ecrate-py/url#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/143\"\u003ecrate-py/url#143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.1 to 6.7.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/145\"\u003ecrate-py/url#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.30.1 to 3.30.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/crate-py/url/pull/144\"\u003ecrate-py/url#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/146\"\u003ecrate-py/url#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/147\"\u003ecrate-py/url#147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/149\"\u003ecrate-py/url#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/153\"\u003ecrate-py/url#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.3 to 2.4.1 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/crate-py/url/pull/154\"\u003ecrate-py/url#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.7.0 to 7.1.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/crate-py/url/pull/156\"\u003ecrate-py/url#156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.0 to 7.1.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/crate-py/url/pull/165\"\u003ecrate-py/url#165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/162\"\u003ecrate-py/url#162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/161\"\u003ecrate-py/url#161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.26.0 to 0.27.1 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/crate-py/url/pull/163\"\u003ecrate-py/url#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/167\"\u003ecrate-py/url#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/169\"\u003ecrate-py/url#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.1 to 2.4.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/crate-py/url/pull/170\"\u003ecrate-py/url#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/171\"\u003ecrate-py/url#171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 4.31.0 to 4.31.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/crate-py/url/pull/168\"\u003ecrate-py/url#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pytest from 8.4.2 to 9.0.1 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/crate-py/url/pull/172\"\u003ecrate-py/url#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/173\"\u003ecrate-py/url#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/url/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/crate-py/url/compare/v0.18.0...v0.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/crate-py/url/commit/73303a5c9d44959584d46f0ef91a4bd7a5a3e709\"\u003e\u003ccode\u003e73303a5\u003c/code\u003e\u003c/a\u003e Bump to PyO3 v0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/9597b7b6ca0e47ee5cc02c66ac33093e72fa382d\"\u003e\u003ccode\u003e9597b7b\u003c/code\u003e\u003c/a\u003e Update the pre-commit link for zizmor.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/0e4bf834369ea22f9ef0e5ba9e0da608e7c0a451\"\u003e\u003ccode\u003e0e4bf83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/173\"\u003e#173\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/37827d1e1a51876d23f363121ce3ca65a510c700\"\u003e\u003ccode\u003e37827d1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/6ee7f78ba107df27bca1e868119f970e28506bc9\"\u003e\u003ccode\u003e6ee7f78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/172\"\u003e#172\u003c/a\u003e from crate-py/dependabot/pip/pytest-9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/4760097a3baf8bc407cdc0f0db05ca4ed7d2afba\"\u003e\u003ccode\u003e4760097\u003c/code\u003e\u003c/a\u003e Bump pytest from 8.4.2 to 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/c22ab9fd470edc90a5230e588c53c8e2050cb9d6\"\u003e\u003ccode\u003ec22ab9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/168\"\u003e#168\u003c/a\u003e from crate-py/dependabot/github_actions/github/codeql...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/f5e2adf10045d6e41abeaf60d90cf1e1a62af234\"\u003e\u003ccode\u003ef5e2adf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/171\"\u003e#171\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/34eadce3ede2654285bde942d73164672ed4d96b\"\u003e\u003ccode\u003e34eadce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/f1e2316da245fff71e4d9f57631539c7ce1b186c\"\u003e\u003ccode\u003ef1e2316\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/170\"\u003e#170\u003c/a\u003e from crate-py/dependabot/github_actions/softprops/act...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crate-py/url/compare/v0.18.0...v0.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.148.2 to 6.151.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.4\u003c/h2\u003e\n\u003cp\u003eThis patch adjusts how we compute the stopping threshold introduced in\nversion 6.151.3, while still maintaining 99% confidence that \u0026lt;1% of\ntest cases pass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-4\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.3\u003c/h2\u003e\n\u003cp\u003eThis patch makes Hypothesis more tolerant of slow-to-satisfy\n\u0026quot;assume()\u0026quot; calls. Previously, Hypothesis would give up after\n\u0026quot;max_examples * 10\u0026quot; attempts; now it uses a statistical test to stop\nonly when 99% confident that \u0026lt;1% of examples would pass (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4623\"\u003e#4623\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/ajdavis\"\u003e\u003ccode\u003e@​ajdavis\u003c/code\u003e\u003c/a\u003e for this improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.2\u003c/h2\u003e\n\u003cp\u003eFormat our code with the latest version of black.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.1\u003c/h2\u003e\n\u003cp\u003eImprove internal categorization of test cases when an alternative\nbackend raises \u0026quot;BackendCannotProceed\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.0\u003c/h2\u003e\n\u003cp\u003eAdd 2025.12 to the list of recognized Array API versions in\n\u0026quot;hypothesis.extra.array_api\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.3\u003c/h2\u003e\n\u003cp\u003eHypothesis now generates powers of 2 more often when using\n\u0026quot;integers()\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.2\u003c/h2\u003e\n\u003cp\u003eUpdate some internal type hints.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.1\u003c/h2\u003e\n\u003cp\u003eThis patch fixes a bug where \u0026quot;recursive()\u0026quot; would fail in cases where\nthe \u0026quot;extend=\u0026quot; function does not reference it's argument - which was\nassumed by the recent \u0026quot;min_leaves=\u0026quot; feature, because the strategy\ncan't actually recurse otherwise.  (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4638\"\u003e#4638\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/HypothesisWorks/hypothesis/commit/fefce87e942c07f67ba37af737cff5450f4e3dc4\"\u003e\u003ccode\u003efefce87\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.4 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/cfb0d374af128daf919268cb0cd2d893ea413eb2\"\u003e\u003ccode\u003ecfb0d37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4650\"\u003e#4650\u003c/a\u003e from Liam-DeVoe/stopping-rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/e4d7549d464a25cabdcbf9e818ee2b28e1f27f73\"\u003e\u003ccode\u003ee4d7549\u003c/code\u003e\u003c/a\u003e drop long comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/a09166c4057e34b7f7f2ac2449cc8da494d6a27e\"\u003e\u003ccode\u003ea09166c\u003c/code\u003e\u003c/a\u003e adjust stopping rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/f3d71e9a9f996b4ad9244602234a15b836babac8\"\u003e\u003ccode\u003ef3d71e9\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.3 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/42126d6e2e825338c8d17460589f60a3bd7f88ed\"\u003e\u003ccode\u003e42126d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4643\"\u003e#4643\u003c/a\u003e from ajdavis/issue-4623-filter-condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/f69cad62125b2aa64fab41d613aa68a2f80495f8\"\u003e\u003ccode\u003ef69cad6\u003c/code\u003e\u003c/a\u003e response to comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/34282ed3c0c2e913d86d2e8f3ff9cef6c4187539\"\u003e\u003ccode\u003e34282ed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4649\"\u003e#4649\u003c/a\u003e from Liam-DeVoe/next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/7de805fa2fae2ae9c334cfcadfb207eac2b50db2\"\u003e\u003ccode\u003e7de805f\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.2 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/559b1c195c469a04e3ebfccafb18883475f4fd3b\"\u003e\u003ccode\u003e559b1c1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4646\"\u003e#4646\u003c/a\u003e from HypothesisWorks/create-pull-request/patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.148.2...hypothesis-python-6.151.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.2.3 to 9.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.1.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_static_dir()\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  sphinxsetup.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/sphinx-doc/sphinx/blob/master/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.1.0 (released Dec 31, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :meth:\u003ccode\u003e~sphinx.application.Sphinx.add_static_dir\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/actions-marketplace-validations/bowtie-json-schema_bowtie/pull/132","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions-marketplace-validations%2Fbowtie-json-schema_bowtie/issues/132","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/132/packages"},{"uuid":"3883991698","node_id":"PR_kwDOH7M42c7A0GLe","number":2380,"state":"open","title":"chore(deps): bump the bowtie-dependencies group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-02T04:58:35.000Z","updated_at":"2026-02-05T15:01:55.426Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"bowtie-dependencies","update_count":16,"packages":[{"name":"aiodocker","old_version":"0.24.0","new_version":"0.25.0","repository_url":"https://github.com/aio-libs/aiodocker"},{"name":"diagnostic","old_version":"2.1.0","new_version":"3.0.0","repository_url":"https://github.com/pradyunsg/diagnostic"},{"name":"jsonschema","old_version":"4.25.1","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.1","repository_url":"https://github.com/Textualize/rich"},{"name":"rich-click","old_version":"1.9.4","new_version":"1.9.6","repository_url":"https://github.com/ewels/rich-click"},{"name":"rpds-py","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"url-py","old_version":"0.18.0","new_version":"0.19.0","repository_url":"https://github.com/crate-py/url"},{"name":"hypothesis","old_version":"6.148.2","new_version":"6.151.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"sphinx-substitution-extensions","old_version":"2025.1.2","new_version":"2026.1.12","repository_url":"https://github.com/adamtheturtle/sphinx-substitution-extensions"},{"name":"sphinxcontrib-spelling","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the bowtie-dependencies group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiodocker](https://github.com/aio-libs/aiodocker) | `0.24.0` | `0.25.0` |\n| [diagnostic](https://github.com/pradyunsg/diagnostic) | `2.1.0` | `3.0.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.1` |\n| [rich-click](https://github.com/ewels/rich-click) | `1.9.4` | `1.9.6` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.29.0` | `0.30.0` |\n| [url-py](https://github.com/crate-py/url) | `0.18.0` | `0.19.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.148.2` | `6.151.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.1.0` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [sphinx-substitution-extensions](https://github.com/adamtheturtle/sphinx-substitution-extensions) | `2025.1.2` | `2026.1.12` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.1` | `8.0.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n\n\nUpdates `aiodocker` from 0.24.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiodocker/releases\"\u003eaiodocker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 support, updating dependencies such as aiohttp (minimum 3.8 to 3.10) and async-timeout (minimum to 5.0) for stdlib TaskGroup and timeout compatibility in Python 3.11+ (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e**kwargs\u003c/code\u003e with explicit parameters in \u003ccode\u003eDockerContainer.{stop,restart,kill,delete}()\u003c/code\u003e methods, accepting \u003ccode\u003et\u003c/code\u003e for server-side stop timeout and \u003ccode\u003etimeout\u003c/code\u003e for client-side request timeouts for consistency with other methods covered in the previous PRs \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/990\"\u003e#990\u003c/a\u003e; since this is a BREAKING CHANGE for those who have used the \u003ccode\u003etimeout\u003c/code\u003e argument for the \u003ccode\u003eDockerContainer.restart()\u003c/code\u003e method calls, the users should replace it with \u003ccode\u003et\u003c/code\u003e to keep the intended semantics (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue authenticating against private registries where the \u003ccode\u003eX-Registry-Auth\u003c/code\u003e header would require URL-safe substitutions. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Docker context endpoints with TLS, reading configuration from \u003ccode\u003e~/.docker/contexts/\u003c/code\u003e and respecting \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e environment variable and \u003ccode\u003eSkipTLSVerify\u003c/code\u003e option. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SSH protocol support for secure connections to remote Docker instances via \u0026quot;ssh://\u0026quot; URLs with mandatory host key verification (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce the client-level \u003ccode\u003etimeout\u003c/code\u003e configuration which becomes the base timeout configuration while still allowing legacy individual per-API timeouts and merging it into the base timeout.  Now setting individual float (total) timeout per-API call is HIGHLY DISCOURAGED in favor of composable timeouts via stdlib's \u003ccode\u003easyncio.timeout()\u003c/code\u003e async context manager. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the CI workflows to expand the test matrix for aiohttp 3.10/3.13 releases and let tests use the prebuilt artifact to ensure consistency with the release (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIsolate the docker instance for swarm and service tests via a docker-in-docker compose stack to avoid affecting the user environment (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply the default cooldown period (7 days) to the dependabot configuration (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/984\"\u003e#984\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/aio-libs/aiodocker/blob/main/CHANGES.rst\"\u003eaiodocker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.25.0 (2025-12-20)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 support, updating dependencies such as aiohttp (minimum 3.8 to 3.10) and async-timeout (minimum to 5.0) for stdlib TaskGroup and timeout compatibility in Python 3.11+ (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e**kwargs\u003c/code\u003e with explicit parameters in \u003ccode\u003eDockerContainer.{stop,restart,kill,delete}()\u003c/code\u003e methods, accepting \u003ccode\u003et\u003c/code\u003e for server-side stop timeout and \u003ccode\u003etimeout\u003c/code\u003e for client-side request timeouts for consistency with other methods covered in the previous PRs \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/990\"\u003e#990\u003c/a\u003e; since this is a BREAKING CHANGE for those who have used the \u003ccode\u003etimeout\u003c/code\u003e argument for the \u003ccode\u003eDockerContainer.restart()\u003c/code\u003e method calls, the users should replace it with \u003ccode\u003et\u003c/code\u003e to keep the intended semantics (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue authenticating against private registries where the \u003ccode\u003eX-Registry-Auth\u003c/code\u003e header would require URL-safe substitutions. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Docker context endpoints with TLS, reading configuration from \u003ccode\u003e~/.docker/contexts/\u003c/code\u003e and respecting \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e environment variable and \u003ccode\u003eSkipTLSVerify\u003c/code\u003e option. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SSH protocol support for secure connections to remote Docker instances via \u0026quot;ssh://\u0026quot; URLs with mandatory host key verification (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce the client-level \u003ccode\u003etimeout\u003c/code\u003e configuration which becomes the base timeout configuration while still allowing legacy individual per-API timeouts and merging it into the base timeout.  Now setting individual float (total) timeout per-API call is HIGHLY DISCOURAGED in favor of composable timeouts via stdlib's \u003ccode\u003easyncio.timeout()\u003c/code\u003e async context manager. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the CI workflows to expand the test matrix for aiohttp 3.10/3.13 releases and let tests use the prebuilt artifact to ensure consistency with the release (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIsolate the docker instance for swarm and service tests via a docker-in-docker compose stack to avoid affecting the user environment (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply the default cooldown period (7 days) to the dependabot configuration (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/984\"\u003e#984\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/aio-libs/aiodocker/commit/53cb28682c2e892c4631b6fd3cff3e515e0c791b\"\u003e\u003ccode\u003e53cb286\u003c/code\u003e\u003c/a\u003e ci: Update sigstore action to avoid using deprecated artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/cf67541d5a8adfc6787cc7a8a239ca8099dee3f5\"\u003e\u003ccode\u003ecf67541\u003c/code\u003e\u003c/a\u003e Release v0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/872a9c24ee9d034572ebda1d6d1dc1a93ca877be\"\u003e\u003ccode\u003e872a9c2\u003c/code\u003e\u003c/a\u003e Add missing consistent client timeout in DockerContainer.commit() (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/992\"\u003e#992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/b2c0cd712e3b9891f183e53ce22adac49fdcd1a7\"\u003e\u003ccode\u003eb2c0cd7\u003c/code\u003e\u003c/a\u003e Even more consistent timeouts for all long-running APIs (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/972d3e1d26f7fc8fc148f6084f3febcc01475b13\"\u003e\u003ccode\u003e972d3e1\u003c/code\u003e\u003c/a\u003e Make per-call and contextual timeout handling consistent across all long-runn...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/d2718327a3203a74e7453f6551b0680d7a834d13\"\u003e\u003ccode\u003ed271832\u003c/code\u003e\u003c/a\u003e Bump Ruff version in pre-commit-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/c2ddcfd6b5bd7e2ae4e69d6fd9a0973165e30370\"\u003e\u003ccode\u003ec2ddcfd\u003c/code\u003e\u003c/a\u003e Bump the ci group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/989\"\u003e#989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/ede0268ccb12564a11afcd302bee7ff757f03950\"\u003e\u003ccode\u003eede0268\u003c/code\u003e\u003c/a\u003e feat: add SSH support for remote Docker connections (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/b5f93e01079f8fd72261d5d5529a327a9bb8fb2b\"\u003e\u003ccode\u003eb5f93e0\u003c/code\u003e\u003c/a\u003e feat: Add context arg and docs for config precedence (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/988\"\u003e#988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/e992db2fe2b87ff75733d46e99605ad8a173a580\"\u003e\u003ccode\u003ee992db2\u003c/code\u003e\u003c/a\u003e Add support for Docker context endpoints (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiodocker/compare/v0.24.0...v0.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `diagnostic` from 2.1.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/diagnostic/releases\"\u003ediagnostic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8, 3.9.\u003c/li\u003e\n\u003cli\u003eAdd explicitly tested support for Python 3.12, 3.13 and 3.14.\u003c/li\u003e\n\u003cli\u003eUse the standard library \u003ccode\u003eargparse\u003c/code\u003e for boolean options.\u003c/li\u003e\n\u003cli\u003eModernise the code and tooling used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.0\"\u003ehttps://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.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/pradyunsg/diagnostic/blob/main/docs/changelog.md\"\u003ediagnostic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.0.0 (2025-12-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8, 3.9.\u003c/li\u003e\n\u003cli\u003eAdd explicitly tested support for Python 3.12, 3.13 and 3.14.\u003c/li\u003e\n\u003cli\u003eUse the standard library \u003ccode\u003eargparse\u003c/code\u003e for boolean options.\u003c/li\u003e\n\u003cli\u003eModernise the code and tooling used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/diagnostic/commit/56439f60a59cff430fd1316fc228a8d7ea6dce1c\"\u003e\u003ccode\u003e56439f6\u003c/code\u003e\u003c/a\u003e Release 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/e44dd86515456096ec3a5daa61afc79275f468b4\"\u003e\u003ccode\u003ee44dd86\u003c/code\u003e\u003c/a\u003e Drop manual provenance and build pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/36a5afd0d8c07fc103bde9d1f4e9e5218f2561a7\"\u003e\u003ccode\u003e36a5afd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/45\"\u003e#45\u003c/a\u003e from pradyunsg/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/37f95c77071a8ca27369da56e21ee9b88e82023a\"\u003e\u003ccode\u003e37f95c7\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 6 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/da2208610603e7203fc6b42e0cb6747be1ee17ea\"\u003e\u003ccode\u003eda22086\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/43\"\u003e#43\u003c/a\u003e from pradyunsg/argparse-builtin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/fa629882117dd1741c31ad36662b1103eea447f8\"\u003e\u003ccode\u003efa62988\u003c/code\u003e\u003c/a\u003e Use the stdlib implementation for boolean options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/c231f585393747dfe8bfd9c16db24ac6d2d4c944\"\u003e\u003ccode\u003ec231f58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/42\"\u003e#42\u003c/a\u003e from pradyunsg/modernise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/5f45e5d8284ec00daf1462215b8e00a405b056cb\"\u003e\u003ccode\u003e5f45e5d\u003c/code\u003e\u003c/a\u003e Add and test support for Python 3.12-3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/ff5ad05a80d78d3cc7cb478896fe1f00b005d106\"\u003e\u003ccode\u003eff5ad05\u003c/code\u003e\u003c/a\u003e Fix pyright deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/679cc98ff965b43b970259625dcc3a1c88f165c4\"\u003e\u003ccode\u003e679cc98\u003c/code\u003e\u003c/a\u003e Pacify docutils \u0026lt;-\u0026gt; pyright errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.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.1 to 4.26.0\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.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1400\"\u003epython-jsonschema/jsonschema#1400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1405\"\u003epython-jsonschema/jsonschema#1405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.5.0 to 6.6.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/python-jsonschema/jsonschema/pull/1406\"\u003epython-jsonschema/jsonschema#1406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1407\"\u003epython-jsonschema/jsonschema#1407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1413\"\u003epython-jsonschema/jsonschema#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.0 to 6.6.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1412\"\u003epython-jsonschema/jsonschema#1412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.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/python-jsonschema/jsonschema/pull/1410\"\u003epython-jsonschema/jsonschema#1410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.2 to 2.3.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/python-jsonschema/jsonschema/pull/1409\"\u003epython-jsonschema/jsonschema#1409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1411\"\u003epython-jsonschema/jsonschema#1411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidators: avoid \u003ccode\u003eurllib.request\u003c/code\u003e at import-time by \u003ca href=\"https://github.com/gudnimg\"\u003e\u003ccode\u003e@​gudnimg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1416\"\u003epython-jsonschema/jsonschema#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.1 to 6.8.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/python-jsonschema/jsonschema/pull/1417\"\u003epython-jsonschema/jsonschema#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.3 to 2.3.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1418\"\u003epython-jsonschema/jsonschema#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1415\"\u003epython-jsonschema/jsonschema#1415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.4 to 2.4.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1419\"\u003epython-jsonschema/jsonschema#1419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1420\"\u003epython-jsonschema/jsonschema#1420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.8.0 to 7.1.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/python-jsonschema/jsonschema/pull/1421\"\u003epython-jsonschema/jsonschema#1421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1424\"\u003epython-jsonschema/jsonschema#1424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.0 to 7.1.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1423\"\u003epython-jsonschema/jsonschema#1423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1425\"\u003epython-jsonschema/jsonschema#1425\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1429\"\u003epython-jsonschema/jsonschema#1429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1431\"\u003epython-jsonschema/jsonschema#1431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.1 to 2.4.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/python-jsonschema/jsonschema/pull/1432\"\u003epython-jsonschema/jsonschema#1432\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.1 to 7.1.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/python-jsonschema/jsonschema/pull/1430\"\u003epython-jsonschema/jsonschema#1430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1434\"\u003epython-jsonschema/jsonschema#1434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.2 to 7.1.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1435\"\u003epython-jsonschema/jsonschema#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1436\"\u003epython-jsonschema/jsonschema#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1437\"\u003epython-jsonschema/jsonschema#1437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.2 to 2.5.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/python-jsonschema/jsonschema/pull/1438\"\u003epython-jsonschema/jsonschema#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1439\"\u003epython-jsonschema/jsonschema#1439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument \u003ccode\u003euuid\u003c/code\u003e format by \u003ca href=\"https://github.com/sim642\"\u003e\u003ccode\u003e@​sim642\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1440\"\u003epython-jsonschema/jsonschema#1440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1441\"\u003epython-jsonschema/jsonschema#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.4 to 7.1.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1442\"\u003epython-jsonschema/jsonschema#1442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1443\"\u003epython-jsonschema/jsonschema#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/gudnimg\"\u003e\u003ccode\u003e@​gudnimg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1416\"\u003epython-jsonschema/jsonschema#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sim642\"\u003e\u003ccode\u003e@​sim642\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1440\"\u003epython-jsonschema/jsonschema#1440\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.1...v4.26.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.25.1...v4.26.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDecrease import time by delaying importing of \u003ccode\u003eurllib.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1416\"\u003e#1416\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/a7277432b0f7bcd0551f6e589d30457017125df4\"\u003e\u003ccode\u003ea727743\u003c/code\u003e\u003c/a\u003e Add a changelog entry for 4.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6d28c13efbbd6cf136143fdbb18f79d4476091f6\"\u003e\u003ccode\u003e6d28c13\u003c/code\u003e\u003c/a\u003e Update the lockfile.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/739499edc33c007ff62180c9fef61dbf5480bb7b\"\u003e\u003ccode\u003e739499e\u003c/code\u003e\u003c/a\u003e Update pre-commit hooks.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/cb2d77980713577f65cc7e7c7c115932206393fd\"\u003e\u003ccode\u003ecb2d779\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1443\"\u003e#1443\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/e6bbbb7c5bcdb32a654572d17bfce264aefd1f9d\"\u003e\u003ccode\u003ee6bbbb7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/d56037a88faac4881214c6674a785b4abd428617\"\u003e\u003ccode\u003ed56037a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1442\"\u003e#1442\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/e54ce13fb590a5c17fb702431598a382de6e68f9\"\u003e\u003ccode\u003ee54ce13\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 7.1.4 to 7.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1f7c9fbd01d9c2f8ddd98065324062f7e122dbe1\"\u003e\u003ccode\u003e1f7c9fb\u003c/code\u003e\u003c/a\u003e Partially update docs requirements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/241aec982bc8c867f276779faf20d49d9774532f\"\u003e\u003ccode\u003e241aec9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1441\"\u003e#1441\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/2818efb4fa446ed4fa7815b4e09a7b4b7c633852\"\u003e\u003ccode\u003e2818efb\u003c/code\u003e\u003c/a\u003e Apache-2.0 -\u0026gt; nongpl\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.25.1...v4.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.2.0 to 14.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe Nerdy Fix release\u003c/h2\u003e\n\u003cp\u003eFixed issue with characters outside of unicode range reporting 0 cell size\u003c/p\u003e\n\u003ch2\u003e[14.3.1] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characters out of unicode range reporting a cell size if 0 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3944\"\u003eTextualize/rich#3944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe more emojis release\u003c/h2\u003e\n\u003cp\u003eRich now has support for multi-codepoint emojis. There have also been some Markdown improvements, and a number of fixes. See the release notes below for details.\u003c/p\u003e\n\u003ch2\u003e[14.3.0] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIPython now respects when a \u003ccode\u003eConsole\u003c/code\u003e instance is passed to \u003ccode\u003epretty.install\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3915\"\u003eTextualize/rich#3915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extraneous blank line on non-interactive disabled \u003ccode\u003eProgress\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3905\"\u003eTextualize/rich#3905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extra padding on first cell in columns \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3935\"\u003eTextualize/rich#3935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed trailing whitespace removed when soft_wrap=True \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3937\"\u003eTextualize/rich#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed style new-lines when soft_wrap = True and a print style is set \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for some multi-codepopint glyphs (will fix alignment issues for these characters) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eUNICODE_VERSION\u003c/code\u003e environment variable \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elast_render_height\u003c/code\u003e property to LiveRender \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose locals_max_depth and locals_overflow in traceback.install \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3906/\"\u003eTextualize/rich#3906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSegment.split_lines_terminator\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecells.cell_len\u003c/code\u003e now has a \u003ccode\u003eunicode_version\u003c/code\u003e parameter (that you probably should never change) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLive will not write a new line if there was nothing rendered \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown headers \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown tables, added \u003ccode\u003emarkdown.table.header\u003c/code\u003e and \u003ccode\u003emarkdown.table.border\u003c/code\u003e styles \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown rules \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.3.1] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characters out of unicode range reporting a cell size if 0 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3944\"\u003eTextualize/rich#3944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.0] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIPython now respects when a \u003ccode\u003eConsole\u003c/code\u003e instance is passed to \u003ccode\u003epretty.install\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3915\"\u003eTextualize/rich#3915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extraneous blank line on non-interactive disabled \u003ccode\u003eProgress\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3905\"\u003eTextualize/rich#3905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extra padding on first cell in columns \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3935\"\u003eTextualize/rich#3935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed trailing whitespace removed when soft_wrap=True \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3937\"\u003eTextualize/rich#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed style new-lines when soft_wrap = True and a print style is set \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for some multi-codepopint glyphs (will fix alignment issues for these characters) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eUNICODE_VERSION\u003c/code\u003e environment variable \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elast_render_height\u003c/code\u003e property to LiveRender \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose locals_max_depth and locals_overflow in traceback.install \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3906/\"\u003eTextualize/rich#3906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSegment.split_lines_terminator\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecells.cell_len\u003c/code\u003e now has a \u003ccode\u003eunicode_version\u003c/code\u003e parameter (that you probably should never change) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLive will not write a new line if there was nothing rendered \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown headers \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown tables, added \u003ccode\u003emarkdown.table.header\u003c/code\u003e and \u003ccode\u003emarkdown.table.border\u003c/code\u003e styles \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown rules \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/f2a1c3b8a8f7edc41b1954cc3fb66bae32293a5e\"\u003e\u003ccode\u003ef2a1c3b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3944\"\u003e#3944\u003c/a\u003e from Textualize/nerf-fonts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/2e5a5dad304b59d75aa4b4ed6cae031693e3615e\"\u003e\u003ccode\u003e2e5a5da\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/73ee8232e7ea72a90130ccf67d8ffefd4122e9f4\"\u003e\u003ccode\u003e73ee823\u003c/code\u003e\u003c/a\u003e fix fonts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/36fe3f7ca9becca4777861d5e6e625f5a4a37545\"\u003e\u003ccode\u003e36fe3f7\u003c/code\u003e\u003c/a\u003e docstring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/9a99acc97d26d7832200a271ed8e95dd59df10c7\"\u003e\u003ccode\u003e9a99acc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3828\"\u003e#3828\u003c/a\u003e from RyanSharafuddin/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/2f56d4d1d22d901b444cfc731230e0f715498256\"\u003e\u003ccode\u003e2f56d4d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3942\"\u003e#3942\u003c/a\u003e from Textualize/markdown-style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/97b5beacc3d9c1336d4bc6a3d69fec363bfe5d2c\"\u003e\u003ccode\u003e97b5bea\u003c/code\u003e\u003c/a\u003e typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/9303d77e8d41c6f43c090420f921dd3fc66ebfd1\"\u003e\u003ccode\u003e9303d77\u003c/code\u003e\u003c/a\u003e markdown test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/900052cd5a67d43be8a484703c17599de6f88dea\"\u003e\u003ccode\u003e900052c\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/e9b0e19158034a49f2d7048cdf82d7146e59715f\"\u003e\u003ccode\u003ee9b0e19\u003c/code\u003e\u003c/a\u003e Update to markdown styles\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.2.0...v14.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich-click` from 1.9.4 to 1.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ewels/rich-click/releases\"\u003erich-click's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix minor Typer incompatibilities, most notably default panel placements.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edefault_panels_first\u003c/code\u003e config option which places default panels above user-defined panels.\u003c/li\u003e\n\u003cli\u003eFix to \u003ccode\u003e.pyi\u003c/code\u003e file [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/319\"\u003e#319\u003c/a\u003e] (\u003ca href=\"https://github.com/nemowang2003\"\u003e\u003ccode\u003e@​nemowang2003\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.9.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.9.5.dev0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\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/ewels/rich-click/blob/main/CHANGELOG.md\"\u003erich-click's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.6 (2026-01-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix minor Typer incompatibilities, most notably default panel placements.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edefault_panels_first\u003c/code\u003e config option which places default panels above user-defined panels.\u003c/li\u003e\n\u003cli\u003eFix to \u003ccode\u003e.pyi\u003c/code\u003e file [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/319\"\u003e#319\u003c/a\u003e] (\u003ca href=\"https://github.com/nemowang2003\"\u003e\u003ccode\u003e@​nemowang2003\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.9.5 (2025-12-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\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/ewels/rich-click/commit/5cb336fd257bc9670fba103a44185f75eb07b8de\"\u003e\u003ccode\u003e5cb336f\u003c/code\u003e\u003c/a\u003e Generate new screengrabs with rich-codex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/9096d02dbeda5c24d4bf5c363077b03111960a1c\"\u003e\u003ccode\u003e9096d02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/320\"\u003e#320\u003c/a\u003e from dwreeves/minor-typer-compat-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/f5e4b108fa9965cf14fc745d289538719d9f5891\"\u003e\u003ccode\u003ef5e4b10\u003c/code\u003e\u003c/a\u003e Fix Typer incompatibilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/cf09124fd4fae9fea061c1af0c3ca49eb45f3398\"\u003e\u003ccode\u003ecf09124\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/319\"\u003e#319\u003c/a\u003e from nemowang2003/fix-pyi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/d97ac2d49280ce973c15b945c7403d094a1e9e46\"\u003e\u003ccode\u003ed97ac2d\u003c/code\u003e\u003c/a\u003e Fix incorrect type hint in rich_command.pyi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/bab2cbdeb0a20c89f2b1f2e7e649a8d75a824a86\"\u003e\u003ccode\u003ebab2cbd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/317\"\u003e#317\u003c/a\u003e from dwreeves/1.9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/5cb417753c75e0073c118a6aa25f888317bcf286\"\u003e\u003ccode\u003e5cb4177\u003c/code\u003e\u003c/a\u003e finalize version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/aa3e15fe25e047345e5e91c296eab5c2be881a75\"\u003e\u003ccode\u003eaa3e15f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/316\"\u003e#316\u003c/a\u003e from peterdragun/fix/use_encodedstringio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/8c99252e914421ea5cd6893bf0bbca7cd1c566fc\"\u003e\u003ccode\u003e8c99252\u003c/code\u003e\u003c/a\u003e fix: Use _EncodedStringIO for Rich Console detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/0137fe896b42f7a4076559ebdd7a0d5a52e0ab04\"\u003e\u003ccode\u003e0137fe8\u003c/code\u003e\u003c/a\u003e fix timestamp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ewels/rich-click/compare/v1.9.4...v1.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rpds-py` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/rpds/releases\"\u003erpds-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.30.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/202\"\u003ecrate-py/rpds#202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/203\"\u003ecrate-py/rpds#203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to PyO3 0.27.2 by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/204\"\u003ecrate-py/rpds#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.29.0...v0.30.0\"\u003ehttps://github.com/crate-py/rpds/compare/v0.29.0...v0.30.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/crate-py/rpds/commit/c38c9795cc6a1b4d95bd1863e7164f889a638adf\"\u003e\u003ccode\u003ec38c979\u003c/code\u003e\u003c/a\u003e Tag a release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/09c753822ffc4aac239f590d0aa33dbfcf6e6658\"\u003e\u003ccode\u003e09c7538\u003c/code\u003e\u003c/a\u003e Update the pre-commit link for zizmor.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/086997f24d385064e5b45656996462e45c9b9806\"\u003e\u003ccode\u003e086997f\u003c/code\u003e\u003c/a\u003e Remove an unneeded section of the pyproject.toml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/76909337a92fbd0e782137b7296ef2a620d17706\"\u003e\u003ccode\u003e7690933\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/204\"\u003e#204\u003c/a\u003e from edgarrmondragon/pyo3-0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/84f9bd13822be3d2d70c04391cb9bcfa7f6d565f\"\u003e\u003ccode\u003e84f9bd1\u003c/code\u003e\u003c/a\u003e Update to PyO3 0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5cb6bc4bbdad1fe12bf9b471cbe0b6e691846a6d\"\u003e\u003ccode\u003e5cb6bc4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/203\"\u003e#203\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/677a6dbb757e0551edade218d24ac731709c59f4\"\u003e\u003ccode\u003e677a6db\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5f1fa205f836761a15c71df017443e7860ce2be6\"\u003e\u003ccode\u003e5f1fa20\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/202\"\u003e#202\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/6657a51e8a3ea2559d5b168ef69a2e44f47353ce\"\u003e\u003ccode\u003e6657a51\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.29.0...v0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `url-py` from 0.18.0 to 0.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/url/releases\"\u003eurl-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.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/crate-py/url/pull/138\"\u003ecrate-py/url#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.29.11 to 3.30.1 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/crate-py/url/pull/139\"\u003ecrate-py/url#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.2 to 2.3.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/crate-py/url/pull/140\"\u003ecrate-py/url#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/141\"\u003ecrate-py/url#141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.0 to 6.6.1 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/crate-py/url/pull/142\"\u003ecrate-py/url#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/143\"\u003ecrate-py/url#143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.1 to 6.7.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/145\"\u003ecrate-py/url#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.30.1 to 3.30.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/crate-py/url/pull/144\"\u003ecrate-py/url#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/146\"\u003ecrate-py/url#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/147\"\u003ecrate-py/url#147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/149\"\u003ecrate-py/url#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/153\"\u003ecrate-py/url#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.3 to 2.4.1 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/crate-py/url/pull/154\"\u003ecrate-py/url#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.7.0 to 7.1.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/crate-py/url/pull/156\"\u003ecrate-py/url#156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.0 to 7.1.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/crate-py/url/pull/165\"\u003ecrate-py/url#165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/162\"\u003ecrate-py/url#162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/161\"\u003ecrate-py/url#161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.26.0 to 0.27.1 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/crate-py/url/pull/163\"\u003ecrate-py/url#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/167\"\u003ecrate-py/url#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/169\"\u003ecrate-py/url#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.1 to 2.4.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/crate-py/url/pull/170\"\u003ecrate-py/url#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/171\"\u003ecrate-py/url#171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 4.31.0 to 4.31.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/crate-py/url/pull/168\"\u003ecrate-py/url#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pytest from 8.4.2 to 9.0.1 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/crate-py/url/pull/172\"\u003ecrate-py/url#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/173\"\u003ecrate-py/url#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/url/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/crate-py/url/compare/v0.18.0...v0.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/crate-py/url/commit/73303a5c9d44959584d46f0ef91a4bd7a5a3e709\"\u003e\u003ccode\u003e73303a5\u003c/code\u003e\u003c/a\u003e Bump to PyO3 v0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/9597b7b6ca0e47ee5cc02c66ac33093e72fa382d\"\u003e\u003ccode\u003e9597b7b\u003c/code\u003e\u003c/a\u003e Update the pre-commit link for zizmor.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/0e4bf834369ea22f9ef0e5ba9e0da608e7c0a451\"\u003e\u003ccode\u003e0e4bf83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/173\"\u003e#173\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/37827d1e1a51876d23f363121ce3ca65a510c700\"\u003e\u003ccode\u003e37827d1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/6ee7f78ba107df27bca1e868119f970e28506bc9\"\u003e\u003ccode\u003e6ee7f78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/172\"\u003e#172\u003c/a\u003e from crate-py/dependabot/pip/pytest-9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/4760097a3baf8bc407cdc0f0db05ca4ed7d2afba\"\u003e\u003ccode\u003e4760097\u003c/code\u003e\u003c/a\u003e Bump pytest from 8.4.2 to 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/c22ab9fd470edc90a5230e588c53c8e2050cb9d6\"\u003e\u003ccode\u003ec22ab9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/168\"\u003e#168\u003c/a\u003e from crate-py/dependabot/github_actions/github/codeql...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/f5e2adf10045d6e41abeaf60d90cf1e1a62af234\"\u003e\u003ccode\u003ef5e2adf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/171\"\u003e#171\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/34eadce3ede2654285bde942d73164672ed4d96b\"\u003e\u003ccode\u003e34eadce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/f1e2316da245fff71e4d9f57631539c7ce1b186c\"\u003e\u003ccode\u003ef1e2316\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/170\"\u003e#170\u003c/a\u003e from crate-py/dependabot/github_actions/softprops/act...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crate-py/url/compare/v0.18.0...v0.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.148.2 to 6.151.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.1\u003c/h2\u003e\n\u003cp\u003eImprove internal categorization of test cases when an alternative\nbackend raises \u0026quot;BackendCannotProceed\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.0\u003c/h2\u003e\n\u003cp\u003eAdd 2025.12 to the list of recognized Array API versions in\n\u0026quot;hypothesis.extra.array_api\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.3\u003c/h2\u003e\n\u003cp\u003eHypothesis now generates powers of 2 more often when using\n\u0026quot;integers()\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.2\u003c/h2\u003e\n\u003cp\u003eUpdate some internal type hints.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.1\u003c/h2\u003e\n\u003cp\u003eThis patch fixes a bug where \u0026quot;recursive()\u0026quot; would fail in cases where\nthe \u0026quot;extend=\u0026quot; function does not reference it's argument - which was\nassumed by the recent \u0026quot;min_leaves=\u0026quot; feature, because the strategy\ncan't actually recurse otherwise.  (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4638\"\u003e#4638\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eNow, the historical behavior is working-but-deprecated, or an error if\nyou explicitly pass \u0026quot;min_leaves=\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.0\u003c/h2\u003e\n\u003cp\u003eThis release adds a \u0026quot;min_leaves\u0026quot; argument to \u0026quot;recursive()\u0026quot;, which\nensures that generated recursive structures have at least the\nspecified number of leaf nodes (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4205\"\u003e#4205\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.149.1\u003c/h2\u003e\n\u003cp\u003eAdd type hints to an internal class.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-149-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.149.0\u003c/h2\u003e\n\u003cp\u003eThis release extends the explain-phase \u0026quot;# or any other generated\nvalue\u0026quot; comments to sub-arguments within \u0026quot;builds()\u0026quot;, \u0026quot;tuples()\u0026quot;, and\n\u0026quot;fixed_dictionaries()\u0026quot;.\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/HypothesisWorks/hypothesis/commit/8cfe8a3ed0ba5669e1322010fb7531332a3ccbe8\"\u003e\u003ccode\u003e8cfe8a3\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.1 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/ca75e22f09339cd7a2fc5bb953d6ffa5f6563ae4\"\u003e\u003ccode\u003eca75e22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4647\"\u003e#4647\u003c/a\u003e from Liam-DeVoe/realize-cannot-proceed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/6a5f210d9fda39289ffb3247d1daf8192ef59557\"\u003e\u003ccode\u003e6a5f210\u003c/code\u003e\u003c/a\u003e more consistent constants coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/98a5a9a7922c1d44aead385ce5b4d6e479eb5f27\"\u003e\u003ccode\u003e98a5a9a\u003c/code\u003e\u003c/a\u003e format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/ba4fbe629fd0eaeb907eaabf0855ea6b38efb5cf\"\u003e\u003ccode\u003eba4fbe6\u003c/code\u003e\u003c/a\u003e improve BackendCannotProceed handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/4af5e8397309345c58af46614dd93ecad43b47f0\"\u003e\u003ccode\u003e4af5e83\u003c/code\u003e\u003c/a\u003e drop for_failure deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/1f80995026f7d3f08b80dc73940de8df43878072\"\u003e\u003ccode\u003e1f80995\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.0 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/8ddfcc29d77fa21baa5fa428b053a16549933242\"\u003e\u003ccode\u003e8ddfcc2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4645\"\u003e#4645\u003c/a\u003e from ev-br/array_api_2025.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/edb6701cb50843df0ef88721b8d19a8dd7cc8552\"\u003e\u003ccode\u003eedb6701\u003c/code\u003e\u003c/a\u003e Add 2025.12 to allowed array API versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/83bd35aa9b53831956b55cbdbe9ad20dc7cc7b6f\"\u003e\u003ccode\u003e83bd35a\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.150.3 and update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.148.2...hypothesis-python-6.151.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.2.3 to 9.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.1.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_static_dir()\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  sphinxsetup.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/sphinx-doc/sphinx/blob/master/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.1.0 (released Dec 31, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :meth:\u003ccode\u003e~sphinx.application.Sphinx.add_static_dir\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  :ref:\u003ccode\u003e'sphinxsetup' \u0026lt;latexsphinxsetup\u0026gt;\u003c/code\u003e.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/cc7c6f435ad37bb12264f8118c8461b230e6830c\"\u003e\u003ccode\u003ecc7c6f4\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b127b9478aa4654a82eeadf1a1e89715d3927608\"\u003e\u003ccode\u003eb127b94\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eapp.add_static_dir()\u003c/code\u003e for copying extension static files (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14219\"\u003e#14219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/20f1c46790d370b50fa7396cca3e1cc658ce9f89\"\u003e\u003ccode\u003e20f1c46\u003c/code\u003e\u003c/a\u003e LaTeX: Inhibit breaks for rows with merged vertical cells (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/1...\n\n_Description has been truncated_","html_url":"https://github.com/bowtie-json-schema/bowtie/pull/2380","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bowtie-json-schema%2Fbowtie/issues/2380","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2380/packages"},{"uuid":"3881829355","node_id":"PR_kwDOJpUnI87AtFcc","number":122,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 79 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T11:05:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T11:10:59.000Z","updated_at":"2026-03-01T11:05:23.000Z","time_to_close":2418862,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":79,"packages":[{"name":"black","old_version":"25.9.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.3","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pandas-stubs","old_version":"2.3.2.250926","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"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":"async-lru","old_version":"2.0.5","new_version":"2.1.0","repository_url":"https://github.com/aio-libs/async-lru"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"certifi","old_version":"2025.10.5","new_version":"2026.1.4","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.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"debugpy","old_version":"1.8.17","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.60.1","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"8.37.0","new_version":"8.38.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":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.25.1","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jupyter-client","old_version":"8.6.3","new_version":"8.8.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyter-server-terminals","old_version":"0.5.3","new_version":"0.5.4","repository_url":"https://github.com/jupyter-server/jupyter_server_terminals"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.3","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"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.4","new_version":"3.2.0","repository_url":"https://github.com/lepture/mistune"},{"name":"nbclient","old_version":"0.10.2","new_version":"0.10.4","repository_url":"https://github.com/jupyter/nbclient"},{"name":"nbconvert","old_version":"7.16.6","new_version":"7.17.0","repository_url":"https://github.com/jupyter/nbconvert"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"numba","old_version":"0.62.1","new_version":"0.63.1","repository_url":"https://github.com/numba/numba"},{"name":"numexpr","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pillow","old_version":"11.3.0","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.23.1","new_version":"0.24.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"psutil","old_version":"7.1.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.5","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.1"},{"name":"send2trash","old_version":"1.8.3","new_version":"2.1.0","repository_url":"https://github.com/arsenetar/send2trash"},{"name":"setuptools","old_version":"80.9.0","new_version":"80.10.2","repository_url":"https://github.com/pypa/setuptools"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.48.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"tornado","old_version":"6.5.2","new_version":"6.5.4","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.36.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wcwidth","old_version":"0.2.14","new_version":"0.5.3","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":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 75 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.9.0` | `26.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.2` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.3` | `0.14.14` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.0` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.2.250926` | `2.3.3.260113` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.1` |\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| [async-lru](https://github.com/aio-libs/async-lru) | `2.0.5` | `2.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.10.5` | `2026.1.4` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.17` | `1.8.20` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.60.1` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `8.38.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.6.3` | `8.8.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyter-server-terminals](https://github.com/jupyter-server/jupyter_server_terminals) | `0.5.3` | `0.5.4` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.3` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.4` | `3.2.0` |\n| [nbclient](https://github.com/jupyter/nbclient) | `0.10.2` | `0.10.4` |\n| [nbconvert](https://github.com/jupyter/nbconvert) | `7.16.6` | `7.17.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [numba](https://github.com/numba/numba) | `0.62.1` | `0.63.1` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.13.1` | `2.14.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.23.1` | `0.24.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.2.2` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.5` | `3.3.2` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.1` |\n| [send2trash](https://github.com/arsenetar/send2trash) | `1.8.3` | `2.1.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.48.0` | `0.52.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.2` | `6.5.4` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.36.1` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.14` | `0.5.3` |\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| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n\n\nUpdates `black` from 25.9.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \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\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \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\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\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/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/513e97162536cb94aeb94ed3cbe487ca64d13e07\"\u003e\u003ccode\u003e513e971\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27a8230cf0ef73abca824d2a8622235d9ad8ab96\"\u003e\u003ccode\u003e27a8230\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27d8daac216ffef80276515b22cf679f9fabc422\"\u003e\u003ccode\u003e27d8daa\u003c/code\u003e\u003c/a\u003e refactor: plural does more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2f248cf095fc49d3599c39befdea6a5552ccd23\"\u003e\u003ccode\u003ea2f248c\u003c/code\u003e\u003c/a\u003e fix: stdlib might be through a symlink. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003e#2115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bc52a22953759f71c291d31e7d17faf9903c0667\"\u003e\u003ccode\u003ebc52a22\u003c/code\u003e\u003c/a\u003e debug: re-organize Matchers to show more of what they do\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f338d816ba7fcd23934a9397d15450593f0f20d9\"\u003e\u003ccode\u003ef338d81\u003c/code\u003e\u003c/a\u003e debug: build is a tuple, don't show it on two lines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/92020e469ab6c80cbe24786d0250a571d5f569cf\"\u003e\u003ccode\u003e92020e4\u003c/code\u003e\u003c/a\u003e refactor(test): convert to parametrized\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6387d0a60d80cb96231ad32fe81be47cddfe1c78\"\u003e\u003ccode\u003e6387d0a\u003c/code\u003e\u003c/a\u003e test: let (most) tests run with no network\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1d31e33cfe0ccef7d87c1f0c6219f55a3d9b5eee\"\u003e\u003ccode\u003e1d31e33\u003c/code\u003e\u003c/a\u003e build: workflows sometimes need more than 10 min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/62949782b7810d8ffc228ba0e00f81c2ab81cda7\"\u003e\u003ccode\u003e6294978\u003c/code\u003e\u003c/a\u003e refactor: an error message is now uniform across versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.3 to 0.14.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\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/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\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.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\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/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\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!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/8b2e7b36f246b990fe473a84eef25ff429e59ecf\"\u003e\u003ccode\u003e8b2e7b3\u003c/code\u003e\u003c/a\u003e Prepare release v0.14.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22813\"\u003e#22813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4c7d1f50fd8d1baf06a3c8885ecd0ded0113d383\"\u003e\u003ccode\u003e4c7d1f5\u003c/code\u003e\u003c/a\u003e [ty] Infer \u003ccode\u003eTypedDict\u003c/code\u003e types with \u0026gt;=1 required key as being always truthy (\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/b7de4341535ff2b299695335e0a7b9ebaf297348\"\u003e\u003ccode\u003eb7de434\u003c/code\u003e\u003c/a\u003e add CCfW hooks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22803\"\u003e#22803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b912dfc8788f8f8c351767899df6b72ce3366352\"\u003e\u003ccode\u003eb912dfc\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1ff062d1cccb8025de184a55c6dfe469a4293249\"\u003e\u003ccode\u003e1ff062d\u003c/code\u003e\u003c/a\u003e [ty] Improve completion rankings for raise-from/except contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22775\"\u003e#22775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7e408a51d24db2bca248bb90f2f7938f83efd22b\"\u003e\u003ccode\u003e7e408a5\u003c/code\u003e\u003c/a\u003e Update dependency wrangler to v4.59.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22793\"\u003e#22793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceb876b82300bd237d11e3eb77c46fcf3d3afe85\"\u003e\u003ccode\u003eceb876b\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c5b4ee68c90faf0e609fa6553a171a7ba60ebdcb\"\u003e\u003ccode\u003ec5b4ee6\u003c/code\u003e\u003c/a\u003e [ty] Support solving generics involving PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22678\"\u003e#22678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9a61293153f43df9963c727539309b76ac4756d\"\u003e\u003ccode\u003eb9a6129\u003c/code\u003e\u003c/a\u003e [ty] Improve support for kwarg splats in dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22781\"\u003e#22781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f516d47ceb7f6a0c3a95eaaa2c7451a32b5d7120\"\u003e\u003ccode\u003ef516d47\u003c/code\u003e\u003c/a\u003e Update contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.3...0.14.14\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.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.6 to 3.10.8\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.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\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\u003c/blockquote\u003e\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/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.6...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-pre-system/pull/122","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-pre-system/issues/122","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/122/packages"},{"uuid":"3881163371","node_id":"PR_kwDOQbl45M7Aq8ij","number":13,"state":"closed","title":"Build(deps): Bump the poetry-dependencies group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T04:30:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T04:33:42.000Z","updated_at":"2026-03-01T04:30:47.000Z","time_to_close":2419024,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps): Bump","group_name":"poetry-dependencies","update_count":35,"packages":[{"name":"black","old_version":"25.11.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.12.0","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.6","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"cachetools","old_version":"6.2.2","new_version":"6.2.6","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"filelock","old_version":"3.20.0","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-auth","old_version":"2.43.0","new_version":"2.48.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"ipython","old_version":"8.37.0","new_version":"8.38.0","repository_url":"https://github.com/ipython/ipython"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pyasn1","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pytokens","old_version":"0.3.0","new_version":"0.4.1","repository_url":"https://github.com/tusharsadhwani/pytokens"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.1"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.50.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"types-deprecated","old_version":"1.3.1.20251101","new_version":"1.3.1.20260130","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.35.4","new_version":"20.36.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wcwidth","old_version":"0.2.14","new_version":"0.5.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"2.0.1","new_version":"2.1.0","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 33 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.11.0` | `26.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.12.0` | `7.13.2` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.6` | `0.14.14` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.2` | `6.2.6` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.0` | `3.20.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.43.0` | `2.48.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `8.38.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.0` | `4.5.1` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.1` | `0.6.2` |\n| [pytokens](https://github.com/tusharsadhwani/pytokens) | `0.3.0` | `0.4.1` |\n| ruamel-yaml | `0.18.16` | `0.19.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.3.0` | `2.4.0` |\n| [types-deprecated](https://github.com/typeshed-internal/stub_uploader) | `1.3.1.20251101` | `1.3.1.20260130` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.35.4` | `20.36.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.14` | `0.5.3` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.0.1` | `2.1.0` |\n\n\nUpdates `black` from 25.11.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \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\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \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\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\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/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.12.0 to 7.13.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/513e97162536cb94aeb94ed3cbe487ca64d13e07\"\u003e\u003ccode\u003e513e971\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27a8230cf0ef73abca824d2a8622235d9ad8ab96\"\u003e\u003ccode\u003e27a8230\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27d8daac216ffef80276515b22cf679f9fabc422\"\u003e\u003ccode\u003e27d8daa\u003c/code\u003e\u003c/a\u003e refactor: plural does more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2f248cf095fc49d3599c39befdea6a5552ccd23\"\u003e\u003ccode\u003ea2f248c\u003c/code\u003e\u003c/a\u003e fix: stdlib might be through a symlink. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003e#2115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bc52a22953759f71c291d31e7d17faf9903c0667\"\u003e\u003ccode\u003ebc52a22\u003c/code\u003e\u003c/a\u003e debug: re-organize Matchers to show more of what they do\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f338d816ba7fcd23934a9397d15450593f0f20d9\"\u003e\u003ccode\u003ef338d81\u003c/code\u003e\u003c/a\u003e debug: build is a tuple, don't show it on two lines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/92020e469ab6c80cbe24786d0250a571d5f569cf\"\u003e\u003ccode\u003e92020e4\u003c/code\u003e\u003c/a\u003e refactor(test): convert to parametrized\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6387d0a60d80cb96231ad32fe81be47cddfe1c78\"\u003e\u003ccode\u003e6387d0a\u003c/code\u003e\u003c/a\u003e test: let (most) tests run with no network\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1d31e33cfe0ccef7d87c1f0c6219f55a3d9b5eee\"\u003e\u003ccode\u003e1d31e33\u003c/code\u003e\u003c/a\u003e build: workflows sometimes need more than 10 min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/62949782b7810d8ffc228ba0e00f81c2ab81cda7\"\u003e\u003ccode\u003e6294978\u003c/code\u003e\u003c/a\u003e refactor: an error message is now uniform across versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.12.0...7.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.6 to 0.14.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\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/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\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.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\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/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\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!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/8b2e7b36f246b990fe473a84eef25ff429e59ecf\"\u003e\u003ccode\u003e8b2e7b3\u003c/code\u003e\u003c/a\u003e Prepare release v0.14.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22813\"\u003e#22813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4c7d1f50fd8d1baf06a3c8885ecd0ded0113d383\"\u003e\u003ccode\u003e4c7d1f5\u003c/code\u003e\u003c/a\u003e [ty] Infer \u003ccode\u003eTypedDict\u003c/code\u003e types with \u0026gt;=1 required key as being always truthy (\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/b7de4341535ff2b299695335e0a7b9ebaf297348\"\u003e\u003ccode\u003eb7de434\u003c/code\u003e\u003c/a\u003e add CCfW hooks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22803\"\u003e#22803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b912dfc8788f8f8c351767899df6b72ce3366352\"\u003e\u003ccode\u003eb912dfc\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1ff062d1cccb8025de184a55c6dfe469a4293249\"\u003e\u003ccode\u003e1ff062d\u003c/code\u003e\u003c/a\u003e [ty] Improve completion rankings for raise-from/except contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22775\"\u003e#22775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7e408a51d24db2bca248bb90f2f7938f83efd22b\"\u003e\u003ccode\u003e7e408a5\u003c/code\u003e\u003c/a\u003e Update dependency wrangler to v4.59.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22793\"\u003e#22793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceb876b82300bd237d11e3eb77c46fcf3d3afe85\"\u003e\u003ccode\u003eceb876b\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c5b4ee68c90faf0e609fa6553a171a7ba60ebdcb\"\u003e\u003ccode\u003ec5b4ee6\u003c/code\u003e\u003c/a\u003e [ty] Support solving generics involving PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22678\"\u003e#22678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9a61293153f43df9963c727539309b76ac4756d\"\u003e\u003ccode\u003eb9a6129\u003c/code\u003e\u003c/a\u003e [ty] Improve support for kwarg splats in dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22781\"\u003e#22781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f516d47ceb7f6a0c3a95eaaa2c7451a32b5d7120\"\u003e\u003ccode\u003ef516d47\u003c/code\u003e\u003c/a\u003e Update contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.6...0.14.14\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dapla-auth-client` from 1.2.0 to 1.2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/releases\"\u003edapla-auth-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.5\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate from poetry to uv build tool (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/41\"\u003e#41\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecompatibility 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e) \u003ca href=\"https://github.com/aecorn\"\u003e\u003ccode\u003e@​aecorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecompatibility 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e) \u003ca href=\"https://github.com/aecorn\"\u003e\u003ccode\u003e@​aecorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-action-dependencies group across 1 directory with 8 updates (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/43\"\u003e#43\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump uv from 0.9.10 to 0.9.25 in /.github/workflows in the workflows-dependencies group across 1 directory (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/42\"\u003e#42\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange constraint to supporting Python 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/39\"\u003e#39\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix dependency constraints (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/37\"\u003e#37\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warning. Remove Python upper bound (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/32\"\u003e#32\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd backstage docs (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/30\"\u003e#30\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\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/statisticsnorway/dapla-auth-client/commit/167189fbc03bbd582686aefaabf2035ff69785b5\"\u003e\u003ccode\u003e167189f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e from statisticsnorway/compatibility-python-310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/4a9ef71858a52eab4e7c532207f7da3d37fb8307\"\u003e\u003ccode\u003e4a9ef71\u003c/code\u003e\u003c/a\u003e Bump release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/c7f0416bf50f5b67d5ec99a13f74e03beef45b11\"\u003e\u003ccode\u003ec7f0416\u003c/code\u003e\u003c/a\u003e uv lock aaa\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/57f3b0edf58c00d41fcea745a458de81ab64735e\"\u003e\u003ccode\u003e57f3b0e\u003c/code\u003e\u003c/a\u003e bump version of package to make release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/6ad8ca0f7102323edd53de4a7f61d7945227a8bc\"\u003e\u003ccode\u003e6ad8ca0\u003c/code\u003e\u003c/a\u003e needs uv lock man\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/3d7201084dfbef1ddc8731e6f895710936fcb2b6\"\u003e\u003ccode\u003e3d72010\u003c/code\u003e\u003c/a\u003e dont f with the lock files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/c0aee5908a23d70acf101280cb082c5195ff4444\"\u003e\u003ccode\u003ec0aee59\u003c/code\u003e\u003c/a\u003e ruff did not f up when conscious of python 3.10 in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/8726c65092c6f7e2957cbff4e0cfdb09b4b2ab72\"\u003e\u003ccode\u003e8726c65\u003c/code\u003e\u003c/a\u003e Merge branch 'compatibility-python-310' of \u003ca href=\"https://github.com/statisticsnorwa\"\u003ehttps://github.com/statisticsnorwa\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/99cfc1f573992066e3e8b622b5e1ad6d9bd11d5c\"\u003e\u003ccode\u003e99cfc1f\u003c/code\u003e\u003c/a\u003e ruff is messing mah stuff man\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/1b6899658260771f43292fa7086b00229a54b2f8\"\u003e\u003ccode\u003e1b68996\u003c/code\u003e\u003c/a\u003e pre-commit mah boy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/compare/v1.2.0...v1.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.11.0 to 4.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/bc021b634291223d6829c0a689152173443a8545\"\u003e\u003ccode\u003ebc021b6\u003c/code\u003e\u003c/a\u003e Fixed the download-artifact settings to retain the expected behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c6000aa2837f75733f3c09c454f5a31eb9f9f536\"\u003e\u003ccode\u003ec6000aa\u003c/code\u003e\u003c/a\u003e Corrected the format of the version in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9d1bfe0da4261bcef3c10cd31218237805a89937\"\u003e\u003ccode\u003e9d1bfe0\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.14.2 to 4.14.3\n\nUpdates `cachetools` from 6.2.2 to 6.2.6\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.6 (2026-01-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove typedkey performance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor testing improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor code readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.5 (2026-01-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003elock\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd test cases for cache stampede scenarios.\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.2.4 (2025-12-15)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix license information displayed on PyPI be using an updated\nversion of \u003ccode\u003etwine\u003c/code\u003e for uploading.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.3 (2025-12-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003econdition\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor style and readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModernize build environment.\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/cache...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-collector-client/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-collector-client/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"},{"uuid":"3842411329","node_id":"PR_kwDOMeYp8M6-q355","number":373,"state":"open","title":"Bump the python-dependencies group across 1 directory with 22 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-22T11:03:24.000Z","updated_at":"2026-01-22T11:39:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":22,"packages":[{"name":"dapla-auth-client","old_version":"1.2.1","new_version":"1.2.5","repository_url":"https://github.com/statisticsnorway/dapla-auth-client"},{"name":"gcsfs","old_version":"2025.10.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/gcsfs"},{"name":"google-auth","old_version":"2.43.0","new_version":"2.47.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"pyarrow","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.1"},{"name":"ssb-datadoc-model","old_version":"8.0.0","new_version":"8.0.3","repository_url":"https://github.com/statisticsnorway/ssb-datadoc-model"},{"name":"universal-pathlib","old_version":"0.3.6","new_version":"0.3.8","repository_url":"https://github.com/fsspec/universal_pathlib"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.7","new_version":"0.14.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"faker","old_version":"38.2.0","new_version":"40.1.2","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pandas-stubs","old_version":"2.3.3.251201","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"pyarrow-stubs","old_version":"20.0.0.20251107","new_version":"20.0.0.20251215","repository_url":"https://github.com/zen-xu/pyarrow-stubs"},{"name":"types-docker","old_version":"7.1.0.20251129","new_version":"7.1.0.20260109","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"80.9.0.20251223","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the python-dependencies group with 20 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [dapla-auth-client](https://github.com/statisticsnorway/dapla-auth-client) | `1.2.1` | `1.2.5` |\n| [gcsfs](https://github.com/fsspec/gcsfs) | `2025.10.0` | `2026.1.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.43.0` | `2.47.0` |\n| [pyarrow](https://github.com/apache/arrow) | `22.0.0` | `23.0.0` |\n| ruamel-yaml | `0.18.16` | `0.19.1` |\n| [ssb-datadoc-model](https://github.com/statisticsnorway/ssb-datadoc-model) | `8.0.0` | `8.0.3` |\n| [universal-pathlib](https://github.com/fsspec/universal_pathlib) | `0.3.6` | `0.3.8` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.7` | `0.14.13` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [faker](https://github.com/joke2k/faker) | `38.2.0` | `40.1.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.251201` | `2.3.3.260113` |\n| [pyarrow-stubs](https://github.com/zen-xu/pyarrow-stubs) | `20.0.0.20251107` | `20.0.0.20251215` |\n| [types-docker](https://github.com/typeshed-internal/stub_uploader) | `7.1.0.20251129` | `7.1.0.20260109` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `80.9.0.20250822` | `80.9.0.20251223` |\n\n\nUpdates `dapla-auth-client` from 1.2.1 to 1.2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/releases\"\u003edapla-auth-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.5\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate from poetry to uv build tool (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/41\"\u003e#41\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecompatibility 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e) \u003ca href=\"https://github.com/aecorn\"\u003e\u003ccode\u003e@​aecorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecompatibility 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e) \u003ca href=\"https://github.com/aecorn\"\u003e\u003ccode\u003e@​aecorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-action-dependencies group across 1 directory with 8 updates (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/43\"\u003e#43\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump uv from 0.9.10 to 0.9.25 in /.github/workflows in the workflows-dependencies group across 1 directory (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/42\"\u003e#42\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange constraint to supporting Python 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/39\"\u003e#39\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix dependency constraints (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/37\"\u003e#37\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\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/statisticsnorway/dapla-auth-client/commit/167189fbc03bbd582686aefaabf2035ff69785b5\"\u003e\u003ccode\u003e167189f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e from statisticsnorway/compatibility-python-310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/4a9ef71858a52eab4e7c532207f7da3d37fb8307\"\u003e\u003ccode\u003e4a9ef71\u003c/code\u003e\u003c/a\u003e Bump release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/c7f0416bf50f5b67d5ec99a13f74e03beef45b11\"\u003e\u003ccode\u003ec7f0416\u003c/code\u003e\u003c/a\u003e uv lock aaa\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/57f3b0edf58c00d41fcea745a458de81ab64735e\"\u003e\u003ccode\u003e57f3b0e\u003c/code\u003e\u003c/a\u003e bump version of package to make release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/6ad8ca0f7102323edd53de4a7f61d7945227a8bc\"\u003e\u003ccode\u003e6ad8ca0\u003c/code\u003e\u003c/a\u003e needs uv lock man\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/3d7201084dfbef1ddc8731e6f895710936fcb2b6\"\u003e\u003ccode\u003e3d72010\u003c/code\u003e\u003c/a\u003e dont f with the lock files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/c0aee5908a23d70acf101280cb082c5195ff4444\"\u003e\u003ccode\u003ec0aee59\u003c/code\u003e\u003c/a\u003e ruff did not f up when conscious of python 3.10 in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/8726c65092c6f7e2957cbff4e0cfdb09b4b2ab72\"\u003e\u003ccode\u003e8726c65\u003c/code\u003e\u003c/a\u003e Merge branch 'compatibility-python-310' of \u003ca href=\"https://github.com/statisticsnorwa\"\u003ehttps://github.com/statisticsnorwa\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/99cfc1f573992066e3e8b622b5e1ad6d9bd11d5c\"\u003e\u003ccode\u003e99cfc1f\u003c/code\u003e\u003c/a\u003e ruff is messing mah stuff man\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/1b6899658260771f43292fa7086b00229a54b2f8\"\u003e\u003ccode\u003e1b68996\u003c/code\u003e\u003c/a\u003e pre-commit mah boy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/compare/v1.2.1...v1.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gcsfs` from 2025.10.0 to 2026.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/3ed414aa2c5e5a78556726be11d663ff346bab40\"\u003e\u003ccode\u003e3ed414a\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/bca0139193d8dd8103fc52bfa5caf2ffd2172e6a\"\u003e\u003ccode\u003ebca0139\u003c/code\u003e\u003c/a\u003e Implement async upload methods and support async mode in ExtendedGcsfs (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/9d64f5c5c74c59c840f440f82288f047bf557a3f\"\u003e\u003ccode\u003e9d64f5c\u003c/code\u003e\u003c/a\u003e mkdir override for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/4f9f4ac35f1df42dacfb56f9be200730058fd5ef\"\u003e\u003ccode\u003e4f9f4ac\u003c/code\u003e\u003c/a\u003e reformat benchmark readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/cdd65f5808f6864bd8bed08e7bb7a9359ab0cbe7\"\u003e\u003ccode\u003ecdd65f5\u003c/code\u003e\u003c/a\u003e Adds GCSFS Microbenchmarks (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c8ed96a77d027115b436cd9062825f703955b891\"\u003e\u003ccode\u003ec8ed96a\u003c/code\u003e\u003c/a\u003e ✨ Support alternative GCP Universes (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/e03bf2949664282d4eb09ba18c62a2d98085cba9\"\u003e\u003ccode\u003ee03bf29\u003c/code\u003e\u003c/a\u003e Override info for hns (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/14276d82827f21c1ee6b736ff7896ae4211cc726\"\u003e\u003ccode\u003e14276d8\u003c/code\u003e\u003c/a\u003e Update ci pipeline to run tests on HNS bucket (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c5ac0e3e65154d4d5ec1d1de1566a7b1ea7781d3\"\u003e\u003ccode\u003ec5ac0e3\u003c/code\u003e\u003c/a\u003e feat(zb-write): Support write mode in Zonal File (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/06399c09003b66292bf25206e500796a8855ce72\"\u003e\u003ccode\u003e06399c0\u003c/code\u003e\u003c/a\u003e Adds mv/rename method implementation for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2025.10.0...2026.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.43.0 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.47.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4\"\u003e5c07e1c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc2001\"\u003e60dc2001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.46.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d5\"\u003e0b9107d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631\"\u003e02e71631\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f\"\u003e12f4470f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588\"\u003e59a5f588\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d001470\"\u003e5d001470\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e09\"\u003e94d04e09\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531c\"\u003ec767531c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2\"\u003e3f1aeea2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\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/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588f7793b59d923a4185c8c07738da618f7\"\u003e59a5f588f7793b59d923a4185c8c07738da618f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d0014707fc359782df5ccfcaa75fd372fe9dce3\"\u003e5d0014707fc359782df5ccfcaa75fd372fe9dce3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531ce05a89002d109f595187aff1fcaacfb7\"\u003ec767531ce05a89002d109f595187aff1fcaacfb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f808809e8abf1141f98d88ab720c3899b\"\u003e12f4470f808809e8abf1141f98d88ab720c3899b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e090fdfc61926dd32bc1d65f8820b9cede5\"\u003e94d04e090fdfc61926dd32bc1d65f8820b9cede5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631fe275d93825c2e957e830773e75133f7\"\u003e02e71631fe275d93825c2e957e830773e75133f7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\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/googleapis/google-auth-library-python/commit/f32301a03372eb72a8b5542a4cc223e01ee1e33b\"\u003e\u003ccode\u003ef32301a\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260106T130342Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25f4ca658c1880c7a27ed817ded4c17d84c26854\"\u003e\u003ccode\u003e25f4ca6\u003c/code\u003e\u003c/a\u003e chore: remove Python 3.7 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e\u003ccode\u003e60dc200\u003c/code\u003e\u003c/a\u003e fix: Python 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e\u003ccode\u003e5c07e1c\u003c/code\u003e\u003c/a\u003e feat: drop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2cbc2a2e2e75e8797bf3709eb1e624ad39e7e7d4\"\u003e\u003ccode\u003e2cbc2a2\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260105T122553Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5b7b5d83adafe275351989a96328472b1845c4be\"\u003e\u003ccode\u003e5b7b5d8\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260105T112538Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/7dbf05a56c5c8f1c01f985af140dc8c5ea29656a\"\u003e\u003ccode\u003e7dbf05a\u003c/code\u003e\u003c/a\u003e chore: rename _refresh_token to _perform_refresh_token (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1900\"\u003e#1900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/855a45af913a5d099e30036b80d8ba3b0c324a62\"\u003e\u003ccode\u003e855a45a\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1894\"\u003e#1894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/77c8bc48b5638cbe8c4415fdd378853e9db6e156\"\u003e\u003ccode\u003e77c8bc4\u003c/code\u003e\u003c/a\u003e tests: make the TLS tests skip when pyopenssl isn't available (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1873\"\u003e#1873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e\u003ccode\u003e0b9107d\u003c/code\u003e\u003c/a\u003e feat: Recognize workload certificate config in has_default_client_cert_source...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 23.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/23.0.0.html\"\u003ehttps://arrow.apache.org/release/23.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 23.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 23.0.0 RC2\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/apache/arrow/commit/eafe3a9e620cf94683dee2347f370c35156dc965\"\u003e\u003ccode\u003eeafe3a9\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/45781e854cc9248013349decc4639644871d9f5f\"\u003e\u003ccode\u003e45781e8\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/365e5aca5a1ae2cdc31e6bd4ed640bfba00d5cc5\"\u003e\u003ccode\u003e365e5ac\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e33512d1d82c28e753004d0d7a76c1dca542b1cd\"\u003e\u003ccode\u003ee33512d\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48841\"\u003eGH-48841\u003c/a\u003e: [Release][Package] Add GH_TOKEN to rake build step on Linux Packagi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/86d28e9d55f8d0f11634b4a2a19233fa843d9261\"\u003e\u003ccode\u003e86d28e9\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48838\"\u003eGH-48838\u003c/a\u003e: [Release] Use gh cli to download sources for Linux packages and pub...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b6362d09204136dbf2167fee8ec8ec2af0efe42d\"\u003e\u003ccode\u003eb6362d0\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48582\"\u003eGH-48582\u003c/a\u003e: [CI][GPU][C++][Python] Add new CUDA jobs using the new self-hosted ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8fb7a53f0e2d0fa85ccdc6dd7ccda44dec6ee0d9\"\u003e\u003ccode\u003e8fb7a53\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48827\"\u003eGH-48827\u003c/a\u003e: [CI][Python] Add required xz dependency to emscripten dockerfile (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/342c5d563005709eab03dde332e44bcb237385fc\"\u003e\u003ccode\u003e342c5d5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48809\"\u003eGH-48809\u003c/a\u003e: [CI] Fix homebrew-cpp with Mac by using formula-based dependency re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8955bbf7b266d7e293f5037bd20c3e2e983e004c\"\u003e\u003ccode\u003e8955bbf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48631\"\u003eGH-48631\u003c/a\u003e: [R] Non-API calls: 'ATTRIB', 'SET_ATTRIB' (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48634\"\u003e#48634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b90a2b82d85b1479470b7f1bdd941c9a59ecd3d4\"\u003e\u003ccode\u003eb90a2b8\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48314\"\u003eGH-48314\u003c/a\u003e: [Python] Compat with pandas 3.0 changed default datetime unit (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48319\"\u003e#48319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-22.0.0...apache-arrow-23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruamel-yaml` from 0.18.16 to 0.19.1\n\nUpdates `ssb-datadoc-model` from 8.0.0 to 8.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/releases\"\u003essb-datadoc-model's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-v8.0.3\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:notebook: Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump document version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/70\"\u003e#70\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove fields from dataset to variable level (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/69\"\u003e#69\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization_time from variables into pseudo object (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/65\"\u003e#65\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:snake: Python\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease Python v8.0.0 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/73\"\u003e#73\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump document version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/70\"\u003e#70\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove fields from dataset to variable level (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/69\"\u003e#69\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly warn deprecation when relevant (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/68\"\u003e#68\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version 7.0.0 -\u0026gt; 7.0.1 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/66\"\u003e#66\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization_time from variables into pseudo object (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/65\"\u003e#65\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect project metadata (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/63\"\u003e#63\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:rocket: Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-v8.0.2\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:notebook: Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\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/statisticsnorway/ssb-datadoc-model/commit/a04b301d3615cfe0db25c82170cee401810f99a6\"\u003e\u003ccode\u003ea04b301\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e from statisticsnorway/fix/fix-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/2d21418bc6b3094cf210ad421f5903cd9e46f971\"\u003e\u003ccode\u003e2d21418\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/9b6487e0dafd6503b2a7efaa31923489d97c9195\"\u003e\u003ccode\u003e9b6487e\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/39e0c73e24619bcde538c7562ee219e3307a3891\"\u003e\u003ccode\u003e39e0c73\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/61c924f4a331ac18701a02ad04230abfe41a0263\"\u003e\u003ccode\u003e61c924f\u003c/code\u003e\u003c/a\u003e Revert formatting of stable_identifier_version to date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/6216bfea619447e019f3f9cdb42518c4c5ca0973\"\u003e\u003ccode\u003e6216bfe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e from statisticsnorway/release/v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/838739f8331ba74c70e93d5365c17e3d6ef24ab7\"\u003e\u003ccode\u003e838739f\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/1d670b98c595a9def4104851f3717d0c38bc06c9\"\u003e\u003ccode\u003e1d670b9\u003c/code\u003e\u003c/a\u003e v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/1174a50159039f800e549cbdc82da341549a8dbb\"\u003e\u003ccode\u003e1174a50\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e from statisticsnorway/fix/stable-id-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/16318d82bfe0c56ec23dad821e7bf97599f83bf8\"\u003e\u003ccode\u003e16318d8\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/compare/v8.0.0...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `universal-pathlib` from 0.3.6 to 0.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fsspec/universal_pathlib/releases\"\u003euniversal-pathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump the pip-dependencies group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/501\"\u003efsspec/universal_pathlib#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: describe UPath/s3fs behavior with \u003ccode\u003eis_dir()\u003c/code\u003e by \u003ca href=\"https://github.com/lagamura\"\u003e\u003ccode\u003e@​lagamura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/503\"\u003efsspec/universal_pathlib#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not hardcode Python executable name by \u003ca href=\"https://github.com/avalentino\"\u003e\u003ccode\u003e@​avalentino\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/504\"\u003efsspec/universal_pathlib#504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: remove two unused helper functions introduced in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/505\"\u003efsspec/universal_pathlib#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix iterdir behaviour when raising NotADirectory for all UPath subclasses by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/506\"\u003efsspec/universal_pathlib#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error behavior for the hardlink_to backport and symlink_to for upath.extensions by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/508\"\u003efsspec/universal_pathlib#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitHub tests without a network connection by \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/509\"\u003efsspec/universal_pathlib#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: split base test cases into joinable/readable/writable tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/507\"\u003efsspec/universal_pathlib#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix is_relative_to for extensions by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/510\"\u003efsspec/universal_pathlib#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing pathlib abc tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/511\"\u003efsspec/universal_pathlib#511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit test suite according to abcs by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/513\"\u003efsspec/universal_pathlib#513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix upath core touch by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/515\"\u003efsspec/universal_pathlib#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandover fs instance in UPath.with_segments() if possible by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/516\"\u003efsspec/universal_pathlib#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix DataPath error handling for unsupported methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/517\"\u003efsspec/universal_pathlib#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix HTTPPath error handling for unsupported methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/518\"\u003efsspec/universal_pathlib#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.tar: fix error handling for write methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/519\"\u003efsspec/universal_pathlib#519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.zip: disable write mode in universal-pathlib by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/520\"\u003efsspec/universal_pathlib#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.cloud: fix error handling on HfPath by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/521\"\u003efsspec/universal_pathlib#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.github: adjust GitHubPath error reporting by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/522\"\u003efsspec/universal_pathlib#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor and cleanup test suite by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/514\"\u003efsspec/universal_pathlib#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: xfail on name resolution error in github suite by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/523\"\u003efsspec/universal_pathlib#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix behaviour of UPath.parent and UPath.parents by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/529\"\u003efsspec/universal_pathlib#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust behavior of UPath.copy and UPath.copy_into with str and Path targets by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/530\"\u003efsspec/universal_pathlib#530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix S3Path copy to Local: name collision of file / dir by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/533\"\u003efsspec/universal_pathlib#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecut release 0.3.8 by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/534\"\u003efsspec/universal_pathlib#534\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/lagamura\"\u003e\u003ccode\u003e@​lagamura\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/503\"\u003efsspec/universal_pathlib#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avalentino\"\u003e\u003ccode\u003e@​avalentino\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/504\"\u003efsspec/universal_pathlib#504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/509\"\u003efsspec/universal_pathlib#509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8\"\u003ehttps://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.3.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typing example in README by \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/484\"\u003efsspec/universal_pathlib#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd FTPPath implementation by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/485\"\u003efsspec/universal_pathlib#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath: fix maintainer display on pypi by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/486\"\u003efsspec/universal_pathlib#486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch and assert warnings in tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/487\"\u003efsspec/universal_pathlib#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix trailing slash behavior by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/488\"\u003efsspec/universal_pathlib#488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTests without network connection by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/492\"\u003efsspec/universal_pathlib#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire .cwd() for relative paths in .rename() by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/493\"\u003efsspec/universal_pathlib#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MemoryPath root by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/495\"\u003efsspec/universal_pathlib#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.core: deprecate keyword arguments for UPath.rename() by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/496\"\u003efsspec/universal_pathlib#496\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/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/484\"\u003efsspec/universal_pathlib#484\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/fsspec/universal_pathlib/blob/main/CHANGELOG.md\"\u003euniversal-pathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.3.8] - 2026-01-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003etests: add missing pathlib abc tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: split base test cases into joinable/readable/writable tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: describe UPath/s3fs behavior with \u003ccode\u003eis_dir()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath.implementations.cloud: fix S3Path copy to local with name collision of file/dir (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fix behaviour of \u003ccode\u003eUPath.parent\u003c/code\u003e and \u003ccode\u003eUPath.parents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.github: adjust GitHubPath error reporting (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.cloud: fix error handling on HfPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.zip: disable write mode in universal-pathlib (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.tar: fix error handling for write methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.http: fix HTTPPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.data: fix DataPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fix \u003ccode\u003etouch()\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix \u003ccode\u003eis_relative_to()\u003c/code\u003e for extensions (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix error behavior for \u003ccode\u003ehardlink_to()\u003c/code\u003e backport and \u003ccode\u003esymlink_to()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath: fix \u003ccode\u003eiterdir()\u003c/code\u003e behaviour when raising NotADirectoryError for all UPath subclasses (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: xfail on name resolution error in github suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: fix GitHub tests without a network connection (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath: adjust behavior of \u003ccode\u003eUPath.copy()\u003c/code\u003e and \u003ccode\u003eUPath.copy_into()\u003c/code\u003e with str and Path targets (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: handover cached fs instances in \u003ccode\u003ewith_segments()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: split test suite according to abcs and cleanup tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: remove two unused helper functions introduced in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: do not hardcode Python executable name (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: updated development dependencies (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.7] - 2025-12-03\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath.implementations.ftp: added FTPPath support (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: added comprehensive warning checks in test suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: added xfail handling for network connectivity issues (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath: fixed trailing slash behavior for cloud paths (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fixed rename implementation for relative paths (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.memory: fixed MemoryPath root (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.ftp: added support for FTP modification time info format (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.local: fixed rename return type on Python 3.14+ (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fixed .cwd() behavior for ProxyUPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fixed typing of .cwd() method (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: fixed typing example in README (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/484\"\u003e#484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epypi: fixed maintainer display on PyPI (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\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/fsspec/universal_pathlib/commit/89d2e6d8fa0fa0b9dec6c1dcb0928c051ea6ca9f\"\u003e\u003ccode\u003e89d2e6d\u003c/code\u003e\u003c/a\u003e cut release 0.3.8 (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/c4c1fe317dc71b069697ab597d76a28aa8cf0e57\"\u003e\u003ccode\u003ec4c1fe3\u003c/code\u003e\u003c/a\u003e Fix S3Path copy to Local: name collision of file / dir (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/9ceaf2f2c3a00475eeb46c7ccfd6d43152a0d6f6\"\u003e\u003ccode\u003e9ceaf2f\u003c/code\u003e\u003c/a\u003e Adjust behavior of UPath.copy and UPath.copy_into with str and Path targets (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/4ff77c729626dfd2ebe6caed8ac52260c62d2145\"\u003e\u003ccode\u003e4ff77c7\u003c/code\u003e\u003c/a\u003e Fix behaviour of UPath.parent and UPath.parents (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/fb7703d7883e5bdc5f3eda6caab3a7b974dd806e\"\u003e\u003ccode\u003efb7703d\u003c/code\u003e\u003c/a\u003e tests: xfail on name resolution error in github suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/3fd061c3ff98d0659f722be7617b50703a4a3052\"\u003e\u003ccode\u003e3fd061c\u003c/code\u003e\u003c/a\u003e upath.implementations.github: adjust GitHubPath error reporting (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/ef8888af5260b0e16566c6c4ff9ecd392eafc8d4\"\u003e\u003ccode\u003eef8888a\u003c/code\u003e\u003c/a\u003e upath.implementations.cloud: fix error handling on HfPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/043248d87e2c07bad244185f64cae4a27c683ae6\"\u003e\u003ccode\u003e043248d\u003c/code\u003e\u003c/a\u003e upath.implementations.zip: disable write mode in universal-pathlib (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/f9d9445c4b7dc16e5b374db12d7076e3439e5e5c\"\u003e\u003ccode\u003ef9d9445\u003c/code\u003e\u003c/a\u003e upath.implementations.tar: fix error handling for write methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/22e598a145c10c5baf17cbe7919c6e5da0d28f13\"\u003e\u003ccode\u003e22e598a\u003c/code\u003e\u003c/a\u003e Fix HTTPPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/universal_pathlib/compare/v0.3.6...v0.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/l...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/dapla-toolbelt-metadata/pull/373","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fdapla-toolbelt-metadata/issues/373","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/373/packages"},{"uuid":"3807882745","node_id":"PR_kwDOMeYp8M684V46","number":363,"state":"open","title":"Bump the python-dependencies group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-13T09:05:45.000Z","updated_at":"2026-01-21T08:53:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":19,"packages":[{"name":"gcsfs","old_version":"2025.10.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/gcsfs"},{"name":"google-auth","old_version":"2.43.0","new_version":"2.47.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.1"},{"name":"ssb-datadoc-model","old_version":"8.0.0","new_version":"8.0.3","repository_url":"https://github.com/statisticsnorway/ssb-datadoc-model"},{"name":"universal-pathlib","old_version":"0.3.6","new_version":"0.3.8","repository_url":"https://github.com/fsspec/universal_pathlib"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.7","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"faker","old_version":"38.2.0","new_version":"40.1.0","repository_url":"https://github.com/joke2k/faker"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pandas-stubs","old_version":"2.3.3.251201","new_version":"2.3.3.251219","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"pyarrow-stubs","old_version":"20.0.0.20251107","new_version":"20.0.0.20251215","repository_url":"https://github.com/zen-xu/pyarrow-stubs"},{"name":"types-docker","old_version":"7.1.0.20251129","new_version":"7.1.0.20260109","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"80.9.0.20251223","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gcsfs](https://github.com/fsspec/gcsfs) | `2025.10.0` | `2026.1.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.43.0` | `2.47.0` |\n| ruamel-yaml | `0.18.16` | `0.19.1` |\n| [ssb-datadoc-model](https://github.com/statisticsnorway/ssb-datadoc-model) | `8.0.0` | `8.0.3` |\n| [universal-pathlib](https://github.com/fsspec/universal_pathlib) | `0.3.6` | `0.3.8` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.7` | `0.14.11` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [faker](https://github.com/joke2k/faker) | `38.2.0` | `40.1.0` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.251201` | `2.3.3.251219` |\n| [pyarrow-stubs](https://github.com/zen-xu/pyarrow-stubs) | `20.0.0.20251107` | `20.0.0.20251215` |\n| [types-docker](https://github.com/typeshed-internal/stub_uploader) | `7.1.0.20251129` | `7.1.0.20260109` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `80.9.0.20250822` | `80.9.0.20251223` |\n\n\nUpdates `gcsfs` from 2025.10.0 to 2026.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/3ed414aa2c5e5a78556726be11d663ff346bab40\"\u003e\u003ccode\u003e3ed414a\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/bca0139193d8dd8103fc52bfa5caf2ffd2172e6a\"\u003e\u003ccode\u003ebca0139\u003c/code\u003e\u003c/a\u003e Implement async upload methods and support async mode in ExtendedGcsfs (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/9d64f5c5c74c59c840f440f82288f047bf557a3f\"\u003e\u003ccode\u003e9d64f5c\u003c/code\u003e\u003c/a\u003e mkdir override for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/4f9f4ac35f1df42dacfb56f9be200730058fd5ef\"\u003e\u003ccode\u003e4f9f4ac\u003c/code\u003e\u003c/a\u003e reformat benchmark readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/cdd65f5808f6864bd8bed08e7bb7a9359ab0cbe7\"\u003e\u003ccode\u003ecdd65f5\u003c/code\u003e\u003c/a\u003e Adds GCSFS Microbenchmarks (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c8ed96a77d027115b436cd9062825f703955b891\"\u003e\u003ccode\u003ec8ed96a\u003c/code\u003e\u003c/a\u003e ✨ Support alternative GCP Universes (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/e03bf2949664282d4eb09ba18c62a2d98085cba9\"\u003e\u003ccode\u003ee03bf29\u003c/code\u003e\u003c/a\u003e Override info for hns (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/14276d82827f21c1ee6b736ff7896ae4211cc726\"\u003e\u003ccode\u003e14276d8\u003c/code\u003e\u003c/a\u003e Update ci pipeline to run tests on HNS bucket (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c5ac0e3e65154d4d5ec1d1de1566a7b1ea7781d3\"\u003e\u003ccode\u003ec5ac0e3\u003c/code\u003e\u003c/a\u003e feat(zb-write): Support write mode in Zonal File (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/06399c09003b66292bf25206e500796a8855ce72\"\u003e\u003ccode\u003e06399c0\u003c/code\u003e\u003c/a\u003e Adds mv/rename method implementation for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2025.10.0...2026.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.43.0 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.47.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4\"\u003e5c07e1c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc2001\"\u003e60dc2001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.46.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d5\"\u003e0b9107d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631\"\u003e02e71631\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f\"\u003e12f4470f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588\"\u003e59a5f588\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d001470\"\u003e5d001470\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e09\"\u003e94d04e09\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531c\"\u003ec767531c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2\"\u003e3f1aeea2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\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/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588f7793b59d923a4185c8c07738da618f7\"\u003e59a5f588f7793b59d923a4185c8c07738da618f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d0014707fc359782df5ccfcaa75fd372fe9dce3\"\u003e5d0014707fc359782df5ccfcaa75fd372fe9dce3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531ce05a89002d109f595187aff1fcaacfb7\"\u003ec767531ce05a89002d109f595187aff1fcaacfb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f808809e8abf1141f98d88ab720c3899b\"\u003e12f4470f808809e8abf1141f98d88ab720c3899b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e090fdfc61926dd32bc1d65f8820b9cede5\"\u003e94d04e090fdfc61926dd32bc1d65f8820b9cede5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631fe275d93825c2e957e830773e75133f7\"\u003e02e71631fe275d93825c2e957e830773e75133f7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\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/googleapis/google-auth-library-python/commit/f32301a03372eb72a8b5542a4cc223e01ee1e33b\"\u003e\u003ccode\u003ef32301a\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260106T130342Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25f4ca658c1880c7a27ed817ded4c17d84c26854\"\u003e\u003ccode\u003e25f4ca6\u003c/code\u003e\u003c/a\u003e chore: remove Python 3.7 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e\u003ccode\u003e60dc200\u003c/code\u003e\u003c/a\u003e fix: Python 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e\u003ccode\u003e5c07e1c\u003c/code\u003e\u003c/a\u003e feat: drop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2cbc2a2e2e75e8797bf3709eb1e624ad39e7e7d4\"\u003e\u003ccode\u003e2cbc2a2\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260105T122553Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5b7b5d83adafe275351989a96328472b1845c4be\"\u003e\u003ccode\u003e5b7b5d8\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260105T112538Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/7dbf05a56c5c8f1c01f985af140dc8c5ea29656a\"\u003e\u003ccode\u003e7dbf05a\u003c/code\u003e\u003c/a\u003e chore: rename _refresh_token to _perform_refresh_token (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1900\"\u003e#1900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/855a45af913a5d099e30036b80d8ba3b0c324a62\"\u003e\u003ccode\u003e855a45a\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1894\"\u003e#1894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/77c8bc48b5638cbe8c4415fdd378853e9db6e156\"\u003e\u003ccode\u003e77c8bc4\u003c/code\u003e\u003c/a\u003e tests: make the TLS tests skip when pyopenssl isn't available (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1873\"\u003e#1873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e\u003ccode\u003e0b9107d\u003c/code\u003e\u003c/a\u003e feat: Recognize workload certificate config in has_default_client_cert_source...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruamel-yaml` from 0.18.16 to 0.19.1\n\nUpdates `ssb-datadoc-model` from 8.0.0 to 8.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/releases\"\u003essb-datadoc-model's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-v8.0.3\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:notebook: Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump document version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/70\"\u003e#70\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove fields from dataset to variable level (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/69\"\u003e#69\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization_time from variables into pseudo object (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/65\"\u003e#65\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:snake: Python\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease Python v8.0.0 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/73\"\u003e#73\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump document version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/70\"\u003e#70\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove fields from dataset to variable level (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/69\"\u003e#69\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly warn deprecation when relevant (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/68\"\u003e#68\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version 7.0.0 -\u0026gt; 7.0.1 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/66\"\u003e#66\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization_time from variables into pseudo object (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/65\"\u003e#65\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect project metadata (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/63\"\u003e#63\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:rocket: Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-v8.0.2\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:notebook: Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\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/statisticsnorway/ssb-datadoc-model/commit/a04b301d3615cfe0db25c82170cee401810f99a6\"\u003e\u003ccode\u003ea04b301\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e from statisticsnorway/fix/fix-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/2d21418bc6b3094cf210ad421f5903cd9e46f971\"\u003e\u003ccode\u003e2d21418\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/9b6487e0dafd6503b2a7efaa31923489d97c9195\"\u003e\u003ccode\u003e9b6487e\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/39e0c73e24619bcde538c7562ee219e3307a3891\"\u003e\u003ccode\u003e39e0c73\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/61c924f4a331ac18701a02ad04230abfe41a0263\"\u003e\u003ccode\u003e61c924f\u003c/code\u003e\u003c/a\u003e Revert formatting of stable_identifier_version to date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/6216bfea619447e019f3f9cdb42518c4c5ca0973\"\u003e\u003ccode\u003e6216bfe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e from statisticsnorway/release/v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/838739f8331ba74c70e93d5365c17e3d6ef24ab7\"\u003e\u003ccode\u003e838739f\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/1d670b98c595a9def4104851f3717d0c38bc06c9\"\u003e\u003ccode\u003e1d670b9\u003c/code\u003e\u003c/a\u003e v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/1174a50159039f800e549cbdc82da341549a8dbb\"\u003e\u003ccode\u003e1174a50\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e from statisticsnorway/fix/stable-id-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/16318d82bfe0c56ec23dad821e7bf97599f83bf8\"\u003e\u003ccode\u003e16318d8\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/compare/v8.0.0...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `universal-pathlib` from 0.3.6 to 0.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fsspec/universal_pathlib/releases\"\u003euniversal-pathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump the pip-dependencies group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/501\"\u003efsspec/universal_pathlib#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: describe UPath/s3fs behavior with \u003ccode\u003eis_dir()\u003c/code\u003e by \u003ca href=\"https://github.com/lagamura\"\u003e\u003ccode\u003e@​lagamura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/503\"\u003efsspec/universal_pathlib#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not hardcode Python executable name by \u003ca href=\"https://github.com/avalentino\"\u003e\u003ccode\u003e@​avalentino\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/504\"\u003efsspec/universal_pathlib#504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: remove two unused helper functions introduced in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/505\"\u003efsspec/universal_pathlib#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix iterdir behaviour when raising NotADirectory for all UPath subclasses by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/506\"\u003efsspec/universal_pathlib#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error behavior for the hardlink_to backport and symlink_to for upath.extensions by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/508\"\u003efsspec/universal_pathlib#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitHub tests without a network connection by \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/509\"\u003efsspec/universal_pathlib#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: split base test cases into joinable/readable/writable tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/507\"\u003efsspec/universal_pathlib#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix is_relative_to for extensions by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/510\"\u003efsspec/universal_pathlib#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing pathlib abc tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/511\"\u003efsspec/universal_pathlib#511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit test suite according to abcs by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/513\"\u003efsspec/universal_pathlib#513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix upath core touch by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/515\"\u003efsspec/universal_pathlib#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandover fs instance in UPath.with_segments() if possible by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/516\"\u003efsspec/universal_pathlib#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix DataPath error handling for unsupported methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/517\"\u003efsspec/universal_pathlib#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix HTTPPath error handling for unsupported methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/518\"\u003efsspec/universal_pathlib#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.tar: fix error handling for write methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/519\"\u003efsspec/universal_pathlib#519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.zip: disable write mode in universal-pathlib by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/520\"\u003efsspec/universal_pathlib#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.cloud: fix error handling on HfPath by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/521\"\u003efsspec/universal_pathlib#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.github: adjust GitHubPath error reporting by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/522\"\u003efsspec/universal_pathlib#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor and cleanup test suite by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/514\"\u003efsspec/universal_pathlib#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: xfail on name resolution error in github suite by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/523\"\u003efsspec/universal_pathlib#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix behaviour of UPath.parent and UPath.parents by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/529\"\u003efsspec/universal_pathlib#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust behavior of UPath.copy and UPath.copy_into with str and Path targets by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/530\"\u003efsspec/universal_pathlib#530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix S3Path copy to Local: name collision of file / dir by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/533\"\u003efsspec/universal_pathlib#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecut release 0.3.8 by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/534\"\u003efsspec/universal_pathlib#534\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/lagamura\"\u003e\u003ccode\u003e@​lagamura\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/503\"\u003efsspec/universal_pathlib#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avalentino\"\u003e\u003ccode\u003e@​avalentino\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/504\"\u003efsspec/universal_pathlib#504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/509\"\u003efsspec/universal_pathlib#509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8\"\u003ehttps://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.3.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typing example in README by \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/484\"\u003efsspec/universal_pathlib#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd FTPPath implementation by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/485\"\u003efsspec/universal_pathlib#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath: fix maintainer display on pypi by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/486\"\u003efsspec/universal_pathlib#486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch and assert warnings in tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/487\"\u003efsspec/universal_pathlib#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix trailing slash behavior by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/488\"\u003efsspec/universal_pathlib#488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTests without network connection by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/492\"\u003efsspec/universal_pathlib#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire .cwd() for relative paths in .rename() by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/493\"\u003efsspec/universal_pathlib#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MemoryPath root by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/495\"\u003efsspec/universal_pathlib#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.core: deprecate keyword arguments for UPath.rename() by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/496\"\u003efsspec/universal_pathlib#496\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/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/484\"\u003efsspec/universal_pathlib#484\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/fsspec/universal_pathlib/blob/main/CHANGELOG.md\"\u003euniversal-pathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.3.8] - 2026-01-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003etests: add missing pathlib abc tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: split base test cases into joinable/readable/writable tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: describe UPath/s3fs behavior with \u003ccode\u003eis_dir()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath.implementations.cloud: fix S3Path copy to local with name collision of file/dir (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fix behaviour of \u003ccode\u003eUPath.parent\u003c/code\u003e and \u003ccode\u003eUPath.parents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.github: adjust GitHubPath error reporting (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.cloud: fix error handling on HfPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.zip: disable write mode in universal-pathlib (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.tar: fix error handling for write methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.http: fix HTTPPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.data: fix DataPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fix \u003ccode\u003etouch()\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix \u003ccode\u003eis_relative_to()\u003c/code\u003e for extensions (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix error behavior for \u003ccode\u003ehardlink_to()\u003c/code\u003e backport and \u003ccode\u003esymlink_to()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath: fix \u003ccode\u003eiterdir()\u003c/code\u003e behaviour when raising NotADirectoryError for all UPath subclasses (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: xfail on name resolution error in github suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: fix GitHub tests without a network connection (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath: adjust behavior of \u003ccode\u003eUPath.copy()\u003c/code\u003e and \u003ccode\u003eUPath.copy_into()\u003c/code\u003e with str and Path targets (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: handover cached fs instances in \u003ccode\u003ewith_segments()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: split test suite according to abcs and cleanup tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: remove two unused helper functions introduced in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: do not hardcode Python executable name (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: updated development dependencies (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.7] - 2025-12-03\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath.implementations.ftp: added FTPPath support (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: added comprehensive warning checks in test suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: added xfail handling for network connectivity issues (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath: fixed trailing slash behavior for cloud paths (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fixed rename implementation for relative paths (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.memory: fixed MemoryPath root (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.ftp: added support for FTP modification time info format (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.local: fixed rename return type on Python 3.14+ (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fixed .cwd() behavior for ProxyUPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fixed typing of .cwd() method (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: fixed typing example in README (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/484\"\u003e#484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epypi: fixed maintainer display on PyPI (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\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/fsspec/universal_pathlib/commit/89d2e6d8fa0fa0b9dec6c1dcb0928c051ea6ca9f\"\u003e\u003ccode\u003e89d2e6d\u003c/code\u003e\u003c/a\u003e cut release 0.3.8 (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/c4c1fe317dc71b069697ab597d76a28aa8cf0e57\"\u003e\u003ccode\u003ec4c1fe3\u003c/code\u003e\u003c/a\u003e Fix S3Path copy to Local: name collision of file / dir (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/9ceaf2f2c3a00475eeb46c7ccfd6d43152a0d6f6\"\u003e\u003ccode\u003e9ceaf2f\u003c/code\u003e\u003c/a\u003e Adjust behavior of UPath.copy and UPath.copy_into with str and Path targets (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/4ff77c729626dfd2ebe6caed8ac52260c62d2145\"\u003e\u003ccode\u003e4ff77c7\u003c/code\u003e\u003c/a\u003e Fix behaviour of UPath.parent and UPath.parents (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/fb7703d7883e5bdc5f3eda6caab3a7b974dd806e\"\u003e\u003ccode\u003efb7703d\u003c/code\u003e\u003c/a\u003e tests: xfail on name resolution error in github suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/3fd061c3ff98d0659f722be7617b50703a4a3052\"\u003e\u003ccode\u003e3fd061c\u003c/code\u003e\u003c/a\u003e upath.implementations.github: adjust GitHubPath error reporting (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/ef8888af5260b0e16566c6c4ff9ecd392eafc8d4\"\u003e\u003ccode\u003eef8888a\u003c/code\u003e\u003c/a\u003e upath.implementations.cloud: fix error handling on HfPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/043248d87e2c07bad244185f64cae4a27c683ae6\"\u003e\u003ccode\u003e043248d\u003c/code\u003e\u003c/a\u003e upath.implementations.zip: disable write mode in universal-pathlib (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/f9d9445c4b7dc16e5b374db12d7076e3439e5e5c\"\u003e\u003ccode\u003ef9d9445\u003c/code\u003e\u003c/a\u003e upath.implementations.tar: fix error handling for write methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/22e598a145c10c5baf17cbe7919c6e5da0d28f13\"\u003e\u003ccode\u003e22e598a\u003c/code\u003e\u003c/a\u003e Fix HTTPPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/universal_pathlib/compare/v0.3.6...v0.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.7 to 0.14.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/dapla-toolbelt-metadata/pull/363","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fdapla-toolbelt-metadata/issues/363","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/363/packages"},{"uuid":"3793728220","node_id":"PR_kwDOO_6LKs68KjBC","number":18,"state":"closed","title":"chore(deps): bump the poetry-dependencies group across 1 directory with 69 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T04:42:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-08T17:20:39.000Z","updated_at":"2026-02-01T04:42:39.000Z","time_to_close":2028118,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry-dependencies","update_count":69,"packages":[{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"scipy","old_version":"1.16.0","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"gmsh","old_version":"4.14.0","new_version":"4.15.0"},{"name":"pyvista","old_version":"0.46.2","new_version":"0.46.4","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pypardiso","old_version":"0.4.6","new_version":"0.4.7","repository_url":"https://github.com/haasad/PyPardiso"},{"name":"pyside6","old_version":"6.9.2","new_version":"6.10.1"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.16.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","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.0","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx","old_version":"8.1.3","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"3.0.1","new_version":"3.5.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.2.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":"anyio","old_version":"4.9.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.6.15","new_version":"2026.1.4","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.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.20.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.12","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"intel-openmp","old_version":"2025.2.1","new_version":"2025.3.1"},{"name":"ipython","old_version":"8.37.0","new_version":"9.9.0","repository_url":"https://github.com/ipython/ipython"},{"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-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mkl","old_version":"2025.2.0","new_version":"2025.3.0","repository_url":"https://github.com/uxlfoundation/oneMath"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.2","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.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":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pyinstaller-hooks-contrib","old_version":"2025.10","new_version":"2025.11","repository_url":"https://github.com/pyinstaller/pyinstaller-hooks-contrib"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.1.0","new_version":"14.2.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"scooby","old_version":"0.10.1","new_version":"0.11.0","repository_url":"https://github.com/banesullivan/scooby"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tbb","old_version":"2022.2.0","new_version":"2022.3.0","repository_url":"https://github.com/oneapi-src/oneTBB"},{"name":"tcmlib","old_version":"1.4.0","new_version":"1.4.1"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.31.2","new_version":"20.36.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"vtk","old_version":"9.5.0","new_version":"9.5.2"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"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 65 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.0` | `1.16.3` |\n| [gmsh](https://gmsh.info) | `4.14.0` | `4.15.0` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.46.2` | `0.46.4` |\n| [pypardiso](https://github.com/haasad/PyPardiso) | `0.4.6` | `0.4.7` |\n| [pyside6](https://pyside.org) | `6.9.2` | `6.10.1` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\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.0` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.1.3` | `8.2.3` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.0.1` | `3.5.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.2.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.1` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2026.1.4` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [intel-openmp](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html) | `2025.2.1` | `2025.3.1` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `9.9.0` |\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-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [mkl](https://github.com/uxlfoundation/oneMath) | `2025.2.0` | `2025.3.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.2` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pyinstaller-hooks-contrib](https://github.com/pyinstaller/pyinstaller-hooks-contrib) | `2025.10` | `2025.11` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.1.0` | `14.2.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [scooby](https://github.com/banesullivan/scooby) | `0.10.1` | `0.11.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.1` | `0.50.0` |\n| [tbb](https://github.com/oneapi-src/oneTBB) | `2022.2.0` | `2022.3.0` |\n| [tcmlib](https://oneapi-src.github.io/oneTBB/GSG/next_steps.html) | `1.4.0` | `1.4.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.31.2` | `20.36.0` |\n| [vtk](https://vtk.org) | `9.5.0` | `9.5.2` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `click` from 8.2.1 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/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\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 \u003ccode\u003eCliRunner\u003c/code\u003e. :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.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.2.1...8.3.1\"\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.8\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.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\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/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.3...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.0 to 1.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.16.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.3\u003c/code\u003e is a bug-fix release with no new features compared to \u003ccode\u003e1.16.2\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eChrisAB (1) +\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (3)\u003c/li\u003e\n\u003cli\u003eMatt Haberland (8)\u003c/li\u003e\n\u003cli\u003eNick ODell (2)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (1)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (28)\u003c/li\u003e\n\u003cli\u003eLucas Roberts (2)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 8 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003cp\u003eThe full issue and pull request lists, and the release asset hashes are available\nin the associated \u003ccode\u003eREADME.txt\u003c/code\u003e file.\u003c/p\u003e\n\u003ch1\u003eSciPy 1.16.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.2\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.16.1\u003c/code\u003e. This is the first stable release of\nSciPy to provide Windows on ARM wheels on PyPI.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eDietrich Brunn (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (6)\u003c/li\u003e\n\u003cli\u003eAdam Jones (1)\u003c/li\u003e\n\u003cli\u003eGleb Khmyznikov (1) +\u003c/li\u003e\n\u003cli\u003eJost Migenda (1) +\u003c/li\u003e\n\u003cli\u003enewyork_loki (1)\u003c/li\u003e\n\u003cli\u003eNick ODell (3)\u003c/li\u003e\n\u003cli\u003eDimitri Papadopoulos Orfanos (1)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (2)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (26)\u003c/li\u003e\n\u003cli\u003eMugunthan Selvanayagam (1) +\u003c/li\u003e\n\u003cli\u003eShuhei Watanabe (1) +\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 12 people contributed to this release.\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/scipy/scipy/commit/b9105ccc2237f57acb1060202cd77f6dd264fb34\"\u003e\u003ccode\u003eb9105cc\u003c/code\u003e\u003c/a\u003e REL: 1.16.3 rel commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/4b7699ceb2e7070e732f9a7e24aab46683f41305\"\u003e\u003ccode\u003e4b7699c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23805\"\u003e#23805\u003c/a\u003e from tylerjereddy/treddy_backports_1.16.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/874b75b11d09373c4e7b4fd12975f27d52af4714\"\u003e\u003ccode\u003e874b75b\u003c/code\u003e\u003c/a\u003e MAINT: PR 23805 wheel builds [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/de06a58d65ee0c0266ceb3adaca82c5405206bc4\"\u003e\u003ccode\u003ede06a58\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f642304717d140ede11bb095ee7cc5754e075d1d\"\u003e\u003ccode\u003ef642304\u003c/code\u003e\u003c/a\u003e TST: linalg.svd: skip on 32-bit due to limited memory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/df479083772fbfae5840c198f53ee938ffcd6dc6\"\u003e\u003ccode\u003edf47908\u003c/code\u003e\u003c/a\u003e CI: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f5840635ec2ae1d3ff023159c5e58936e9a2303d\"\u003e\u003ccode\u003ef584063\u003c/code\u003e\u003c/a\u003e TST: stats.boxcox_llf: bump test tolerance for Accelerate (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23864\"\u003e#23864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/fc60b2f449100a55bdb23777b6b5adc3cb38d61a\"\u003e\u003ccode\u003efc60b2f\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/0dd12ec9b92338005959bde3611375ceea18f73a\"\u003e\u003ccode\u003e0dd12ec\u003c/code\u003e\u003c/a\u003e BLD: stats.multivariate_normal: silence pythran build warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/d3b1e625735c1e7c8e9963f5f7c2dd5755636f9d\"\u003e\u003ccode\u003ed3b1e62\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;BLD: stats.multivariate_normal: suppress pythran build warning\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.0...v1.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gmsh` from 4.14.0 to 4.15.0\n\nUpdates `pyvista` from 0.46.2 to 0.46.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyvista/pyvista/releases\"\u003epyvista's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.46.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 by \u003ca href=\"https://github.com/user27182\"\u003e\u003ccode\u003e@​user27182\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyvista/pyvista/pull/8041\"\u003epyvista/pyvista#8041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.46.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003ePyVista \u003ccode\u003e0.46.0\u003c/code\u003e introduced a breaking change by requiring the use of \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e for setting new attributes (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/7716\"\u003e#7716\u003c/a\u003e). This patch release \u003ccode\u003e0.46.3\u003c/code\u003e relaxes this requirement by only requiring this for setting new \u003cem\u003epublic\u003c/em\u003e attributes. Private attributes (with a \u003ccode\u003e_\u003c/code\u003e prefix) can be set without the need to use \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\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/pyvista/pyvista/commit/eabebf9d2977ee0027d6f8e4d1c03ab39f03e8a9\"\u003e\u003ccode\u003eeabebf9\u003c/code\u003e\u003c/a\u003e Fix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8041\"\u003e#8041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/a6fa92498a9896bdba7d495b39273151c6e68cfa\"\u003e\u003ccode\u003ea6fa924\u003c/code\u003e\u003c/a\u003e Allow setting new private attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/dfa05fe8c21b0f72516b8dd7e1695fce8633b000\"\u003e\u003ccode\u003edfa05fe\u003c/code\u003e\u003c/a\u003e Bump version to 0.46.3\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypardiso` from 0.4.6 to 0.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/haasad/PyPardiso/releases\"\u003epypardiso's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.7\u003c/h2\u003e\n\u003cp\u003e5 changes since v0.4.6\u003c/p\u003e\n\u003ch2\u003e🚧 Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for macOS (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix failing tests for pip installed scipy (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type mismatch for sparse arrays (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📄 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse a valid SPDX identifier as license classifier (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚚 CI and Packaging\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun tests for currently supported Python versions (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\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/haasad/PyPardiso/commit/d78ba0108c09a391b99567877be7a45aefc8beb4\"\u003e\u003ccode\u003ed78ba01\u003c/code\u003e\u003c/a\u003e Fix license configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/2b287ca57b1c9919ca927bc6eeb8a136badb9260\"\u003e\u003ccode\u003e2b287ca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e from urob/fix-type-mismatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/04effe91176b7b2e3cf7a85be5fc97be4ec39450\"\u003e\u003ccode\u003e04effe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e from ecederstrand/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/405844b87dbbf111a77668088cac4d4900fef5ce\"\u003e\u003ccode\u003e405844b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\u003c/a\u003e from haasad/maint/python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/f5c7999884b5e8eb71e64ce39fb43f1ff8dd755a\"\u003e\u003ccode\u003ef5c7999\u003c/code\u003e\u003c/a\u003e Run tests for currently supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/d5eec2fdb417bb331ae5de2358ffbc691bb20cde\"\u003e\u003ccode\u003ed5eec2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e from haasad/breaking/remove-macos-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/c1da59caa1e53aa527aab261662087b2f7465ec6\"\u003e\u003ccode\u003ec1da59c\u003c/code\u003e\u003c/a\u003e Remove support for macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/53b301b48cadf086e0056c34fc6bf24a21566b35\"\u003e\u003ccode\u003e53b301b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e from haasad/fix/scipy-error-groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/5a759de7aba8d91ed6e2d1b2585686deed12f4f0\"\u003e\u003ccode\u003e5a759de\u003c/code\u003e\u003c/a\u003e Update changelog config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/a3ec43e43b4110b4696f44b0cb7207441af7bf58\"\u003e\u003ccode\u003ea3ec43e\u003c/code\u003e\u003c/a\u003e Test for ValueError or TypeError\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haasad/PyPardiso/compare/v0.4.6...v0.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyside6` from 6.9.2 to 6.10.1\n\nUpdates `black` from 25.1.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.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.1 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2024.8.6 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2025.09.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epage.html: fix invalid HTML5 by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebase.html: fix trailing slash on void elements by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/895\"\u003epradyunsg/furo#895\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e_scaffold.sass: remove old scrollbar selectors by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/892\"\u003epradyunsg/furo#892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Blender to \u0026quot;used by\u0026quot; section by \u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\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/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2025.07.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value by \u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/847\"\u003epradyunsg/furo#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/826\"\u003epradyunsg/furo#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/861\"\u003epradyunsg/furo#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/873\"\u003epradyunsg/furo#873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd rel=edit attribute to \u0026quot;Edit this page\u0026quot; link/icon by \u003ca href=\"https://github.com/capjamesg\"\u003e\u003ccode\u003e@​capjamesg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/880\"\u003epradyunsg/furo#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/879\"\u003epradyunsg/furo#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix flickering header drop shadow by \u003ca href=\"https://github.com/holesch\"\u003e\u003ccode\u003e@​holesch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/884\"\u003epradyunsg/furo#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake current page section detection resilient to sticky elements above header by \u003ca href=\"https://github.com/Eric-Arellano\"\u003e\u003ccode\u003e@​Eric-Arellano\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/664\"\u003epradyunsg/furo#664\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/capjamesg\"\u003e\u003ccode\u003e@​capjamesg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/880\"\u003epradyunsg/furo#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holesch\"\u003e\u003ccode\u003e@​holesch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/884\"\u003epradyunsg/furo#884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...v1.19.1\"\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.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by...\n\n_Description has been truncated_","html_url":"https://github.com/DanBeranek/temperatureanalysis/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanBeranek%2Ftemperatureanalysis/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"3775006330","node_id":"PR_kwDOQY3FR867N_yT","number":24,"state":"closed","title":"build(deps): bump the poetry-dependencies group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T18:21:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T18:27:20.000Z","updated_at":"2026-02-01T18:21:30.000Z","time_to_close":2678048,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"poetry-dependencies","update_count":19,"packages":[{"name":"black","old_version":"25.11.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.12.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.5","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"cachetools","old_version":"6.2.2","new_version":"6.2.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.20.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-auth","old_version":"2.43.0","new_version":"2.45.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"platformdirs","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 19 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.11.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.12.0` | `7.13.1` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.4.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.5` | `0.14.10` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.2` | `6.2.4` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.0` | `3.20.1` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.43.0` | `2.45.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.0` | `4.5.1` |\n| ruamel-yaml | `0.18.16` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n\n\nUpdates `black` from 25.11.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...25.12.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.12.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.12.0...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.4.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.4.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.5 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.5...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.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.11.0 to 4.12.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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/bc021b634291223d6829c0a689152173443a8545\"\u003e\u003ccode\u003ebc021b6\u003c/code\u003e\u003c/a\u003e Fixed the download-artifact settings to retain the expected behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c6000aa2837f75733f3c09c454f5a31eb9f9f536\"\u003e\u003ccode\u003ec6000aa\u003c/code\u003e\u003c/a\u003e Corrected the format of the version in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9d1bfe0da4261bcef3c10cd31218237805a89937\"\u003e\u003ccode\u003e9d1bfe0\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/77f7ce25e12c9becf5081105a47b1914e50a3e0a\"\u003e\u003ccode\u003e77f7ce2\u003c/code\u003e\u003c/a\u003e Fixed RuntimeError while shutting down the asyncio process pool (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1039\"\u003e#1039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aecc666e6b3b40f977ee715d141bdd89711b45cb\"\u003e\u003ccode\u003eaecc666\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e5569adf98394dfabebccf215a04d05d7819b506\"\u003e\u003ccode\u003ee5569ad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/dde3ab8583cb194e663f6fb87703a4a79e2701eb\"\u003e\u003ccode\u003edde3ab8\u003c/code\u003e\u003c/a\u003e Moved a changelog entry to its correct position\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/250d4f183245bf7ee5ead0ff39d521cda2b8d617\"\u003e\u003ccode\u003e250d4f1\u003c/code\u003e\u003c/a\u003e Restore compatibility with pytest\u0026lt;=6.1.2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1030\"\u003e#1030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3708e227838e2f51464900cf806b25c30ca458a7\"\u003e\u003ccode\u003e3708e22\u003c/code\u003e\u003c/a\u003e Fixed a typo in the documentation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1035\"\u003e#1035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9adbe08c55e725b0388dcc4ab7556875da881a4c\"\u003e\u003ccode\u003e9adbe08\u003c/code\u003e\u003c/a\u003e Add new params to Path.glob \u0026amp; Path.rglob introduced since 3.12 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.12.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.14.2 to 4.14.3\n\nUpdates `cachetools` from 6.2.2 to 6.2.4\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.4 (2025-12-15)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix license information displayed on PyPI be using an updated\nversion of \u003ccode\u003etwine\u003c/code\u003e for uploading.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.3 (2025-12-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003econdition\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor style and readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModernize build environment.\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/9983ef8bd76758707ab9d197d4bd9fa47b4fb8bd\"\u003e\u003ccode\u003e9983ef8\u003c/code\u003e\u003c/a\u003e Bump version for uploading with updated twine.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c9354683857b10b5e00cb93d06f7549ac8344fc0\"\u003e\u003ccode\u003ec935468\u003c/code\u003e\u003c/a\u003e Release v6.2.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/94d1099e6e79d34c436dc9f5d1cc039bcbf76738\"\u003e\u003ccode\u003e94d1099\u003c/code\u003e\u003c/a\u003e Prepare v6.2.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/af8b7d4ffa48d5947161ddb8c1ef1c60dda1e816\"\u003e\u003ccode\u003eaf8b7d4\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/372\"\u003e#372\u003c/a\u003e: Convert setup.cfg to pyproject.toml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/20b8a192f666420a1986b793fd5846b89fdcd647\"\u003e\u003ccode\u003e20b8a19\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/370\"\u003e#370\u003c/a\u003e: Mention that using \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e with condition requires self to be...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/116fb4c3459067442d731e01a3db4694b50722f1\"\u003e\u003ccode\u003e116fb4c\u003c/code\u003e\u003c/a\u003e Minor style and readability improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/96546ea34f8c77df009fb3bc019b72b03589c3fd\"\u003e\u003ccode\u003e96546ea\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0106cc1d4764c9a94cd39a55579ce49bca9f4e1e\"\u003e\u003ccode\u003e0106cc1\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.2.2...v6.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cfgv` from 3.4.0 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/c7342120ec8513671fb8dd54d8a14399dc59cd47\"\u003e\u003ccode\u003ec734212\u003c/code\u003e\u003c/a\u003e v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/d64e0cc2ba77dff75a4c15fb6cf5e6ed315dc80b\"\u003e\u003ccode\u003ed64e0cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/158\"\u003e#158\u003c/a\u003e from asottile/key-value-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/641559f162edff0c37277cd7c5ebd2b65292fad1\"\u003e\u003ccode\u003e641559f\u003c/code\u003e\u003c/a\u003e add KeyValueMap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/82e2f93a1554805a8938a6a3a588efe982e03019\"\u003e\u003ccode\u003e82e2f93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/157\"\u003e#157\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/69cd02016f6a69de3a19a9741f16aa6d40120164\"\u003e\u003ccode\u003e69cd020\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/5ccc4d404d9a6a83bd3b12c1a24437db7ce8a081\"\u003e\u003ccode\u003e5ccc4d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/156\"\u003e#156\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/2e7ffe560a5de38906821304378fe26ceb7a536c\"\u003e\u003ccode\u003e2e7ffe5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/ef7849933897d28727e453646a5a632202724d41\"\u003e\u003ccode\u003eef78499\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/155\"\u003e#155\u003c/a\u003e from asottile/all-repos_autofix_all-repos-manual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/b34b882bba1f683e9e3da7b3ab97e3ee1607977f\"\u003e\u003ccode\u003eb34b882\u003c/code\u003e\u003c/a\u003e py310+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/724a279ea352c1883761e34e3f261c11be28f374\"\u003e\u003ccode\u003e724a279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/154\"\u003e#154\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/asottile/cfgv/compare/v3.4.0...v3.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `exceptiongroup` from 1.3.0 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eAttributeError: 'TracebackException' object has no attribute 'exceptions'\u003c/code\u003e when formatting unpickled TBEs from another Python process which did not apply the \u003ccode\u003eexceptiongroup\u003c/code\u003e patches (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/144\"\u003e#144\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/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup'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\u003e1.3.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eAttributeError: 'TracebackException' object has no attribute 'exceptions'\u003c/code\u003e\nwhen formatting unpickled TBEs from another Python process which did not apply the\n\u003ccode\u003eexceptiongroup\u003c/code\u003e patches\n(\u003ccode\u003e[#144](https://github.com/agronholm/exceptiongroup/issues/144) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/144\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\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/agronholm/exceptiongroup/commit/ddddb6fdf8582c4ae5187dc1bd258115974229fe\"\u003e\u003ccode\u003eddddb6f\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/49c5e60d9efad1416f4f42455e119375904a1d6d\"\u003e\u003ccode\u003e49c5e60\u003c/code\u003e\u003c/a\u003e Fixed AttributeError when formatting unpickled TBEs from an unpatched process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/1be517f553249822a8fa12a4d7520d4b3ef15acd\"\u003e\u003ccode\u003e1be517f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/af0ea2fdfe218a4c2a1cb31ebd1a61dba459af6f\"\u003e\u003ccode\u003eaf0ea2f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/7c980a88a06a72db3d796d98504b335d24274abb\"\u003e\u003ccode\u003e7c980a8\u003c/code\u003e\u003c/a\u003e Removed pin on pyright version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/ef853368c8b94479adbd33cc58f1cac05839e116\"\u003e\u003ccode\u003eef85336\u003c/code\u003e\u003c/a\u003e Fixed typing job not finding Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/080b3f4e925bbdb8cee70cc30c5ef2937eab2bde\"\u003e\u003ccode\u003e080b3f4\u003c/code\u003e\u003c/a\u003e Pinned pyright version to fix typeshed related failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/ac660908a1987880eddbb249947c1eef6e08513b\"\u003e\u003ccode\u003eac66090\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the test matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a0da94dadfb39c0b52c0cd5c87ace166b00f74c1\"\u003e\u003ccode\u003ea0da94d\u003c/code\u003e\u003c/a\u003e Fixed test failures on Python 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.3.0...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.20.0 to 3.20.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.20.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation 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/461\"\u003etox-dev/filelock#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/377f62251d7cdf30768cc9ee1eb31cea1551c71b\"\u003e\u003ccode\u003e377f622\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4724d7f8c3393ec1f048c93933e6e3e6ec321f0e\"\u003e\u003ccode\u003e4724d7f\u003c/code\u003e\u003c/a\u003e Fix TOCTOU symlink vulnerability in lock file creation (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb69414a2327cf0a9887e12054d1dc112ee700af\"\u003e\u003ccode\u003ecb69414\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0769294f14a6c62eea64741722f7acef5386b4cd\"\u003e\u003ccode\u003e0769294\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/414193a188892bd376eb5c56eb45a9cf8ecc9284\"\u003e\u003ccode\u003e414193a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/457\"\u003e#457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1456797beb94ad59e5627462ad29f7ed3a966626\"\u003e\u003ccode\u003e1456797\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d6bf90af313ac7fd6e41ef2b715d91dd6858f5c\"\u003e\u003ccode\u003e8d6bf90\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f7edeebddf79c210db2a6af145d33849e93c5550\"\u003e\u003ccode\u003ef7edeeb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/fb0923562189078b524ad3bd978e5e743dea9b2f\"\u003e\u003ccode\u003efb09235\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5825d867707b432e1c93f85833ce8d3766c986c\"\u003e\u003ccode\u003ef5825d8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/452\"\u003e#452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.20.0...3.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.43.0 to 2.45.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e7\"\u003e0f7097e7\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5\"\u003e39c381a5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cc\"\u003ecf6fc3cc\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986\"\u003ed5638986\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907\"\u003e78de7907\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7e\"\u003eb0993c7e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f\"\u003ee0c3296f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\"\u003ecf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003ee0c3296f471747258f6d98d2d9bfde636358ecde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003eb0993c7edaba505d0fb0628af28760c43034c959\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/google-auth-library-python/commit/08fabf776c02dc6a70472b3ddd9733d66d0053bf\"\u003e\u003ccode\u003e08fabf7\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T132028Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1891\"\u003e#1891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003e\u003ccode\u003eb32c934\u003c/code\u003e\u003c/a\u003e feat: Adding Agent Identity bound token support and handling certificate mism...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/262eb9e33d58ffeb536ecd083c22d9fb12c808e6\"\u003e\u003ccode\u003e262eb9e\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251212T161150Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1888\"\u003e#1888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e\u003ccode\u003e0f7097e\u003c/code\u003e\u003c/a\u003e feat: support Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003e\u003ccode\u003ee0c3296\u003c/code\u003e\u003c/a\u003e fix(auth): Use public refresh method for source credentials in ImpersonatedCr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e\u003ccode\u003e78de790\u003c/code\u003e\u003c/a\u003e fix(auth): Add temporary patch to workload cert logic to accomodate Cloud Run...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3e8a56687fd050ff44a35cc8db0e95e996648173\"\u003e\u003ccode\u003e3e8a566\u003c/code\u003e\u003c/a\u003e chore(tests): allow expired secret in system tests (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003e\u003ccode\u003eb0993c7\u003c/code\u003e\u003c/a\u003e fix(auth): Delegate workload cert and key default lookup to helper function (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2c374d36a61569b75d11c17fae124d591c52ddc6\"\u003e\u003ccode\u003e2c374d3\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e\u003ccode\u003e39c381a\u003c/code\u003e\u003c/a\u003e feat: add ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.45.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/n...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-guardian-client/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-guardian-client/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"},{"uuid":"3774302783","node_id":"PR_kwDOLUtxJc67Ltr1","number":111,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 46 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-13T14:34:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T08:27:22.000Z","updated_at":"2026-01-13T14:34:40.000Z","time_to_close":1058836,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":46,"packages":[{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"black","old_version":"25.9.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.2","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"jupytext","old_version":"1.17.3","new_version":"1.18.1","repository_url":"https://github.com/mwouts/jupytext"},{"name":"ipykernel","old_version":"6.30.1","new_version":"6.31.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"statsmodels","old_version":"0.14.5","new_version":"0.14.6","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"pandas-stubs","old_version":"2.3.2.250926","new_version":"2.3.3.251219","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"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.14.2","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.8.3","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.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"debugpy","old_version":"1.8.17","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.14","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jupyter-client","old_version":"8.6.3","new_version":"8.7.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"patsy","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/pydata/patsy"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"psutil","old_version":"7.1.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"tornado","old_version":"6.5.2","new_version":"6.5.4","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 45 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.2` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [jupytext](https://github.com/mwouts/jupytext) | `1.17.3` | `1.18.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `6.31.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.5` | `0.14.6` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.2.250926` | `2.3.3.251219` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.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.14.2` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `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.3` | `3.4.4` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.17` | `1.8.19` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.14` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.6.3` | `8.7.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [patsy](https://github.com/pydata/patsy) | `1.0.1` | `1.0.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.2.1` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.2` | `6.5.4` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n\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 `black` from 25.9.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.2 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.2...0.14.10\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/blob/main/CHANGELOG.md\"\u003edeptry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0 - 2025-11-09\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/commit/4cc2d65ce1343957c911ca45709d6080cb9f82c3\"\u003e\u003ccode\u003e4cc2d65\u003c/code\u003e\u003c/a\u003e docs(changelog): add 0.24.0 release notes (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/8757b318e9974bbfa7ec65dabf999bc935ac026f\"\u003e\u003ccode\u003e8757b31\u003c/code\u003e\u003c/a\u003e chore: sync all dependency groups by default and run mypy locally (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1337\"\u003e#1337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/5ebc5c066831dd3dfeef7e79a4ae4f5934d744b9\"\u003e\u003ccode\u003e5ebc5c0\u003c/code\u003e\u003c/a\u003e feat: add github annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/aa59b6fa66bd3468ad681317de14189606a9c04e\"\u003e\u003ccode\u003eaa59b6f\u003c/code\u003e\u003c/a\u003e fix(deps): update ruff rust to v0.14.4 (patch) (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/87a6b87428641bc7cab3b22d00d788e28ed86ae9\"\u003e\u003ccode\u003e87a6b87\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b938ae73633b1a1f46e3888c9673b49d5e9dd60\"\u003e\u003ccode\u003e6b938ae\u003c/code\u003e\u003c/a\u003e chore(deps): update uv-version to v0.9.8 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/92c35bab5ad0a11d2becc31e4cdbe4413a746233\"\u003e\u003ccode\u003e92c35ba\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook woodruffw/zizmor-pre-commit to v1.16.3 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/a8be2902812426acaf00ff344dc93a48f30d48d7\"\u003e\u003ccode\u003ea8be290\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1332\"\u003e#1332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6abefd1237071ba0e8d3fc1c9e02a402ccde11f6\"\u003e\u003ccode\u003e6abefd1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mkdocs-material to v9.6.23 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b556861d72024d1f8b5f8c8ead9d1b48cef0f9e\"\u003e\u003ccode\u003e6b55686\u003c/code\u003e\u003c/a\u003e test: update all test dependencies (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-statstruk/pull/111","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-statstruk/issues/111","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/111/packages"},{"uuid":"3774294460","node_id":"PR_kwDOKRFaas67Lr6W","number":146,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T08:20:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T08:19:42.000Z","updated_at":"2026-02-01T08:20:54.000Z","time_to_close":2678470,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":40,"packages":[{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"python-on-whales","old_version":"0.78.0","new_version":"0.79.0","repository_url":"https://github.com/gabrieldemarmiesse/python-on-whales"},{"name":"black","old_version":"25.9.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.2","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.5","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.8.3","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.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.61.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.14","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"pillow","old_version":"11.3.0","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic","old_version":"2.11.9","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pyparsing","old_version":"3.2.5","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 37 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [python-on-whales](https://github.com/gabrieldemarmiesse/python-on-whales) | `0.78.0` | `0.79.0` |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.2` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.5` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `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.3` | `3.4.4` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.61.0` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.14` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.9` | `2.12.5` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.5` | `3.3.1` |\n| ruamel-yaml | `0.18.15` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n\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 `matplotlib` from 3.10.6 to 3.10.8\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.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\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\u003c/blockquote\u003e\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/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.6...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-on-whales` from 0.78.0 to 0.79.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/releases\"\u003epython-on-whales's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.79.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat : Add support for Docker service networks in ComposeService by \u003ca href=\"https://github.com/R3gardless\"\u003e\u003ccode\u003e@​R3gardless\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/683\"\u003egabrieldemarmiesse/python-on-whales#683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Docs] Enable Syntax Highlighting by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/686\"\u003egabrieldemarmiesse/python-on-whales#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove typing of \u003ccode\u003erun\u003c/code\u003e by using \u003ccode\u003e@overload\u003c/code\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/685\"\u003egabrieldemarmiesse/python-on-whales#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd metadata_file opt-in for buildx builds by \u003ca href=\"https://github.com/K-dash\"\u003e\u003ccode\u003e@​K-dash\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/689\"\u003egabrieldemarmiesse/python-on-whales#689\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/R3gardless\"\u003e\u003ccode\u003e@​R3gardless\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/683\"\u003egabrieldemarmiesse/python-on-whales#683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/686\"\u003egabrieldemarmiesse/python-on-whales#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/685\"\u003egabrieldemarmiesse/python-on-whales#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/K-dash\"\u003e\u003ccode\u003e@​K-dash\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/689\"\u003egabrieldemarmiesse/python-on-whales#689\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank you for your contributions! This makes me very happy to see new faces!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/compare/v0.78.0...v0.79.0\"\u003ehttps://github.com/gabrieldemarmiesse/python-on-whales/compare/v0.78.0...v0.79.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/gabrieldemarmiesse/python-on-whales/commit/497852485e34c2d32ae0590be5907e2a5a8855fc\"\u003e\u003ccode\u003e4978524\u003c/code\u003e\u003c/a\u003e Bump python-on-whales version to 0.79.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/commit/d39aaeeb57990b05a516c0772deb48af3d8a9930\"\u003e\u003ccode\u003ed39aaee\u003c/code\u003e\u003c/a\u003e Add metadata_file opt-in for buildx builds (\u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/commit/b694f852a046a62ccbf2341c1a946f4c72d32bb3\"\u003e\u003ccode\u003eb694f85\u003c/code\u003e\u003c/a\u003e Improve typing of \u003ccode\u003erun\u003c/code\u003e by using \u003ccode\u003e@overload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/commit/488ab4a2be87d6a54588979b4364ae14baf97b3a\"\u003e\u003ccode\u003e488ab4a\u003c/code\u003e\u003c/a\u003e [Docs] Enable Syntax Highlighting (\u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/commit/88eae6739915ad0583a0bcf7dec9a31004ecce1c\"\u003e\u003ccode\u003e88eae67\u003c/code\u003e\u003c/a\u003e feat : Add support for Docker service networks in ComposeService (\u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/compare/v0.78.0...v0.79.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.9.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.2 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.2...0.14.10\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003euni...\n\n_Description has been truncated_","html_url":"https://github.com/arnesor/score-o/pull/146","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/arnesor%2Fscore-o/issues/146","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/146/packages"},{"uuid":"3774199951","node_id":"PR_kwDOQdUyT867LYV0","number":8,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T07:12:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T06:28:39.000Z","updated_at":"2026-02-01T07:12:31.000Z","time_to_close":2681030,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":17,"packages":[{"name":"black","old_version":"25.11.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.12.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.6","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"filelock","old_version":"3.20.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"platformdirs","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.11.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.12.0` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.6` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.0` | `3.20.1` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.0` | `4.5.1` |\n| ruamel-yaml | `0.18.16` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n\n\nUpdates `black` from 25.11.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...25.12.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.12.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.12.0...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.6 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.6...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.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.11.0 to 4.12.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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/bc021b634291223d6829c0a689152173443a8545\"\u003e\u003ccode\u003ebc021b6\u003c/code\u003e\u003c/a\u003e Fixed the download-artifact settings to retain the expected behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c6000aa2837f75733f3c09c454f5a31eb9f9f536\"\u003e\u003ccode\u003ec6000aa\u003c/code\u003e\u003c/a\u003e Corrected the format of the version in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9d1bfe0da4261bcef3c10cd31218237805a89937\"\u003e\u003ccode\u003e9d1bfe0\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/77f7ce25e12c9becf5081105a47b1914e50a3e0a\"\u003e\u003ccode\u003e77f7ce2\u003c/code\u003e\u003c/a\u003e Fixed RuntimeError while shutting down the asyncio process pool (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1039\"\u003e#1039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aecc666e6b3b40f977ee715d141bdd89711b45cb\"\u003e\u003ccode\u003eaecc666\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e5569adf98394dfabebccf215a04d05d7819b506\"\u003e\u003ccode\u003ee5569ad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/dde3ab8583cb194e663f6fb87703a4a79e2701eb\"\u003e\u003ccode\u003edde3ab8\u003c/code\u003e\u003c/a\u003e Moved a changelog entry to its correct position\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/250d4f183245bf7ee5ead0ff39d521cda2b8d617\"\u003e\u003ccode\u003e250d4f1\u003c/code\u003e\u003c/a\u003e Restore compatibility with pytest\u0026lt;=6.1.2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1030\"\u003e#1030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3708e227838e2f51464900cf806b25c30ca458a7\"\u003e\u003ccode\u003e3708e22\u003c/code\u003e\u003c/a\u003e Fixed a typo in the documentation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1035\"\u003e#1035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9adbe08c55e725b0388dcc4ab7556875da881a4c\"\u003e\u003ccode\u003e9adbe08\u003c/code\u003e\u003c/a\u003e Add new params to Path.glob \u0026amp; Path.rglob introduced since 3.12 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.12.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.14.2 to 4.14.3\n\nUpdates `filelock` from 3.20.0 to 3.20.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.20.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation 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/461\"\u003etox-dev/filelock#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/377f62251d7cdf30768cc9ee1eb31cea1551c71b\"\u003e\u003ccode\u003e377f622\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4724d7f8c3393ec1f048c93933e6e3e6ec321f0e\"\u003e\u003ccode\u003e4724d7f\u003c/code\u003e\u003c/a\u003e Fix TOCTOU symlink vulnerability in lock file creation (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb69414a2327cf0a9887e12054d1dc112ee700af\"\u003e\u003ccode\u003ecb69414\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0769294f14a6c62eea64741722f7acef5386b4cd\"\u003e\u003ccode\u003e0769294\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/414193a188892bd376eb5c56eb45a9cf8ecc9284\"\u003e\u003ccode\u003e414193a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/457\"\u003e#457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1456797beb94ad59e5627462ad29f7ed3a966626\"\u003e\u003ccode\u003e1456797\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d6bf90af313ac7fd6e41ef2b715d91dd6858f5c\"\u003e\u003ccode\u003e8d6bf90\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f7edeebddf79c210db2a6af145d33849e93c5550\"\u003e\u003ccode\u003ef7edeeb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/fb0923562189078b524ad3bd978e5e743dea9b2f\"\u003e\u003ccode\u003efb09235\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5825d867707b432e1c93f85833ce8d3766c986c\"\u003e\u003ccode\u003ef5825d8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/452\"\u003e#452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.20.0...3.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sh instead of bash by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport leading \u003ccode\u003ev\u003c/code\u003e in \u003ccode\u003e.node-version\u003c/code\u003e by \u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck host platform when finding \u003ccode\u003enode\u003c/code\u003e version by \u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\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/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#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/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ehttps://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.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/ekalinin/nodeenv/commit/9dee547f5e45c9d1b155e4351d165f2b504ae281\"\u003e\u003ccode\u003e9dee547\u003c/code\u003e\u003c/a\u003e chore: bump nodeenv version to 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/d45aabbf54139f5ecbaf9db05d3949d39999136e\"\u003e\u003ccode\u003ed45aabb\u003c/code\u003e\u003c/a\u003e chore: add pyright ignore comments for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/55d6c21a6d56631c0c1d08a04d3c1ea3531ba832\"\u003e\u003ccode\u003e55d6c21\u003c/code\u003e\u003c/a\u003e chore: update AUTHORS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/5f694e6ac261f29233a28061e4af64669199721e\"\u003e\u003ccode\u003e5f694e6\u003c/code\u003e\u003c/a\u003e test: update test test_node_system_creates_shim\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/fa3fdfb1bf807d869795f5bf690359808cb5c529\"\u003e\u003ccode\u003efa3fdfb\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:ekalinin/nodeenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/e868dbe29cad74819615d039b78af21bb2ae431d\"\u003e\u003ccode\u003ee868dbe\u003c/code\u003e\u003c/a\u003e Replace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/b4cd00d453d9f4772c7c410dfbc57d7e757dad5e\"\u003e\u003ccode\u003eb4cd00d\u003c/code\u003e\u003c/a\u003e test: enhance activation tests for nodeenv with custom prompts and file handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/0b5ea9d55ad72ef30a5a7461e27b95c9453bd833\"\u003e\u003ccode\u003e0b5ea9d\u003c/code\u003e\u003c/a\u003e refactor(tests): improve readability of mock patches in nodeenv tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/37c0c304317b9a5646e1779d38b71c4c6928a0a5\"\u003e\u003ccode\u003e37c0c30\u003c/code\u003e\u003c/a\u003e ci: add GH workflow for testing and coverage in PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/326a7a4c1ced11fb3356cdd2c8511f9cdeb81ebc\"\u003e\u003ccode\u003e326a7a4\u003c/code\u003e\u003c/a\u003e test: add comprehensive tests for install_npm and install_npm_win functions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix no-ctypes fallback on windows by \u003ca href=\"https://github.com/youknowone\"\u003e\u003ccode\u003e@​youknowone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/403\"\u003etox-dev/platformdirs#403\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/e4dbdb8c8ed8e448b7cdbbdce4a4ff5c54c5d685\"\u003e\u003ccode\u003ee4dbdb8\u003c/code\u003e\u003c/a\u003e Fix no-ctypes fallback on windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/4cc78aa59bbfa63a993213794f218dac327cf625\"\u003e\u003ccode\u003e4cc78aa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/b624d78851775551b6285c2759cb49325548459b\"\u003e\u003ccode\u003eb624d78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/eb06e7ed58b52ef3876a24393c6235e3928443ec\"\u003e\u003ccode\u003eeb06e7e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/85efbe91422e0b0df64f646dbfe9adb0dff07ed1\"\u003e\u003ccode\u003e85efbe9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/704c603bd3299283b2132f6b4d27daaa4fa2acbf\"\u003e\u003ccode\u003e704c603\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a01817810d92510cfa9cb9e51e7f38094e2fd9b9\"\u003e\u003ccode\u003ea018178\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9920b9bd6b1752d4b1420a3237385dcd3a6ea840\"\u003e\u003ccode\u003e9920b9b\u003c/code\u003e\u003c/a\u003e Bump the all group with 2 updates (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c80472486f4939b795f8552f6b4e629c3db1f538\"\u003e\u003ccode\u003ec804724\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a6a24895db89fe81d8863ca25d1ebeb101fce80b\"\u003e\u003ccode\u003ea6a2489\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruamel-yaml` from 0.18.16 to 0.19.0\n\nUpdates `soupsieve` from 2.8 to 2.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/soupsieve/releases\"\u003esoupsieve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Changes in tests to accommodate latest Python HTML parser changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/f89979745e12e83dbb31dde910a0ad08e9c5c717\"\u003e\u003ccode\u003ef899797\u003c/code\u003e\u003c/a\u003e Adjust changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/1b964a850bb482cc183f3f70811b25487ba200ee\"\u003e\u003ccode\u003e1b964a8\u003c/code\u003e\u003c/a\u003e Switch to using Zensical for documents (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/046ce54956a0c30120038561e53b40994d29de2c\"\u003e\u003ccode\u003e046ce54\u003c/code\u003e\u003c/a\u003e Adjustments for changes in HTML parser (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/soupsieve/compare/2.8...2.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more e...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-libtest13/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-libtest13/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"3774052750","node_id":"PR_kwDOIawopc67K666","number":404,"state":"open","title":"build(deps): bump sphinx-click from 6.1.0 to 6.2.0 in /docs","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-01T03:01:52.000Z","updated_at":"2026-01-01T03:07:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":"/docs","ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [sphinx-click](https://github.com/click-contrib/sphinx-click) from 6.1.0 to 6.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx-click\u0026package-manager=pip\u0026previous-version=6.1.0\u0026new-version=6.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\nDependabot will merge this PR once CI passes on it, as requested by @steven-murray.\n\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/steven-murray/cosmotile/pull/404","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/steven-murray%2Fcosmotile/issues/404","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/404/packages"},{"uuid":"3773947683","node_id":"PR_kwDOQYtXSc67KmVD","number":8,"state":"closed","title":"Bump the poetry-dependencies group with 16 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T00:29:12.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T00:28:47.000Z","updated_at":"2026-02-01T00:29:14.000Z","time_to_close":2678425,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":16,"packages":[{"name":"black","old_version":"25.11.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.12.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.7","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"filelock","old_version":"3.20.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"librt","old_version":"0.6.3","new_version":"0.7.5","repository_url":"https://github.com/mypyc/librt"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"platformdirs","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 16 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.11.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.12.0` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.7` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.0` | `3.20.1` |\n| [librt](https://github.com/mypyc/librt) | `0.6.3` | `0.7.5` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.0` | `4.5.1` |\n| ruamel-yaml | `0.18.16` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n\nUpdates `black` from 25.11.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...25.12.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.12.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.12.0...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.7 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.7...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.20.0 to 3.20.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.20.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation 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/461\"\u003etox-dev/filelock#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/377f62251d7cdf30768cc9ee1eb31cea1551c71b\"\u003e\u003ccode\u003e377f622\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4724d7f8c3393ec1f048c93933e6e3e6ec321f0e\"\u003e\u003ccode\u003e4724d7f\u003c/code\u003e\u003c/a\u003e Fix TOCTOU symlink vulnerability in lock file creation (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb69414a2327cf0a9887e12054d1dc112ee700af\"\u003e\u003ccode\u003ecb69414\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0769294f14a6c62eea64741722f7acef5386b4cd\"\u003e\u003ccode\u003e0769294\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/414193a188892bd376eb5c56eb45a9cf8ecc9284\"\u003e\u003ccode\u003e414193a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/457\"\u003e#457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1456797beb94ad59e5627462ad29f7ed3a966626\"\u003e\u003ccode\u003e1456797\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d6bf90af313ac7fd6e41ef2b715d91dd6858f5c\"\u003e\u003ccode\u003e8d6bf90\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f7edeebddf79c210db2a6af145d33849e93c5550\"\u003e\u003ccode\u003ef7edeeb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/fb0923562189078b524ad3bd978e5e743dea9b2f\"\u003e\u003ccode\u003efb09235\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5825d867707b432e1c93f85833ce8d3766c986c\"\u003e\u003ccode\u003ef5825d8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/452\"\u003e#452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.20.0...3.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `librt` from 0.6.3 to 0.7.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/47bf2eee4db0f93c6ab08a0b58159b228cb393f9\"\u003e\u003ccode\u003e47bf2ee\u003c/code\u003e\u003c/a\u003e Sync mypy and bump version to 0.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/87e36475ef8e8bc47945bd7067391a86fcc11d70\"\u003e\u003ccode\u003e87e3647\u003c/code\u003e\u003c/a\u003e Sync mypy and bump version to 0.7.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/62e0564391d9d93585c678e9b8bf19eb3aab2690\"\u003e\u003ccode\u003e62e0564\u003c/code\u003e\u003c/a\u003e Add some badges to README (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/25\"\u003e#25\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/7e053f113df4bf601b7a69e91c2a4a9888bf6d1a\"\u003e\u003ccode\u003e7e053f1\u003c/code\u003e\u003c/a\u003e Sync mypy to bring new setup structure (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/24\"\u003e#24\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/fd8972fb8a6db60d664d2c8af92510207cc6157a\"\u003e\u003ccode\u003efd8972f\u003c/code\u003e\u003c/a\u003e Force-include all C files (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/23\"\u003e#23\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/bd2a8e897e72bb291a2f3efdab112ec6f080dfc1\"\u003e\u003ccode\u003ebd2a8e8\u003c/code\u003e\u003c/a\u003e Include headers recursively (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/22\"\u003e#22\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/05b3cccb164a58db75c91c4da34945755a5b5d13\"\u003e\u003ccode\u003e05b3ccc\u003c/code\u003e\u003c/a\u003e Sync mypy including the stubs (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/abf92aab269421d4c11baa98d35c21e96567b2f1\"\u003e\u003ccode\u003eabf92aa\u003c/code\u003e\u003c/a\u003e Fix Markdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/fd8d11825501ecf51afb95edd1d51a2ee3cb2e24\"\u003e\u003ccode\u003efd8d118\u003c/code\u003e\u003c/a\u003e Add some developer notes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mypyc/librt/compare/v0.6.3...v0.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sh instead of bash by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport leading \u003ccode\u003ev\u003c/code\u003e in \u003ccode\u003e.node-version\u003c/code\u003e by \u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck host platform when finding \u003ccode\u003enode\u003c/code\u003e version by \u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\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/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#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/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ehttps://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.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/ekalinin/nodeenv/commit/9dee547f5e45c9d1b155e4351d165f2b504ae281\"\u003e\u003ccode\u003e9dee547\u003c/code\u003e\u003c/a\u003e chore: bump nodeenv version to 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/d45aabbf54139f5ecbaf9db05d3949d39999136e\"\u003e\u003ccode\u003ed45aabb\u003c/code\u003e\u003c/a\u003e chore: add pyright ignore comments for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/55d6c21a6d56631c0c1d08a04d3c1ea3531ba832\"\u003e\u003ccode\u003e55d6c21\u003c/code\u003e\u003c/a\u003e chore: update AUTHORS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/5f694e6ac261f29233a28061e4af64669199721e\"\u003e\u003ccode\u003e5f694e6\u003c/code\u003e\u003c/a\u003e test: update test test_node_system_creates_shim\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/fa3fdfb1bf807d869795f5bf690359808cb5c529\"\u003e\u003ccode\u003efa3fdfb\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:ekalinin/nodeenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/e868dbe29cad74819615d039b78af21bb2ae431d\"\u003e\u003ccode\u003ee868dbe\u003c/code\u003e\u003c/a\u003e Replace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/b4cd00d453d9f4772c7c410dfbc57d7e757dad5e\"\u003e\u003ccode\u003eb4cd00d\u003c/code\u003e\u003c/a\u003e test: enhance activation tests for nodeenv with custom prompts and file handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/0b5ea9d55ad72ef30a5a7461e27b95c9453bd833\"\u003e\u003ccode\u003e0b5ea9d\u003c/code\u003e\u003c/a\u003e refactor(tests): improve readability of mock patches in nodeenv tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/37c0c304317b9a5646e1779d38b71c4c6928a0a5\"\u003e\u003ccode\u003e37c0c30\u003c/code\u003e\u003c/a\u003e ci: add GH workflow for testing and coverage in PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/326a7a4c1ced11fb3356cdd2c8511f9cdeb81ebc\"\u003e\u003ccode\u003e326a7a4\u003c/code\u003e\u003c/a\u003e test: add comprehensive tests for install_npm and install_npm_win functions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix no-ctypes fallback on windows by \u003ca href=\"https://github.com/youknowone\"\u003e\u003ccode\u003e@​youknowone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/403\"\u003etox-dev/platformdirs#403\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/e4dbdb8c8ed8e448b7cdbbdce4a4ff5c54c5d685\"\u003e\u003ccode\u003ee4dbdb8\u003c/code\u003e\u003c/a\u003e Fix no-ctypes fallback on windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/4cc78aa59bbfa63a993213794f218dac327cf625\"\u003e\u003ccode\u003e4cc78aa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/b624d78851775551b6285c2759cb49325548459b\"\u003e\u003ccode\u003eb624d78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/eb06e7ed58b52ef3876a24393c6235e3928443ec\"\u003e\u003ccode\u003eeb06e7e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/85efbe91422e0b0df64f646dbfe9adb0dff07ed1\"\u003e\u003ccode\u003e85efbe9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/704c603bd3299283b2132f6b4d27daaa4fa2acbf\"\u003e\u003ccode\u003e704c603\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a01817810d92510cfa9cb9e51e7f38094e2fd9b9\"\u003e\u003ccode\u003ea018178\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9920b9bd6b1752d4b1420a3237385dcd3a6ea840\"\u003e\u003ccode\u003e9920b9b\u003c/code\u003e\u003c/a\u003e Bump the all group with 2 updates (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c80472486f4939b795f8552f6b4e629c3db1f538\"\u003e\u003ccode\u003ec804724\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a6a24895db89fe81d8863ca25d1ebeb101fce80b\"\u003e\u003ccode\u003ea6a2489\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruamel-yaml` from 0.18.16 to 0.19.0\n\nUpdates `soupsieve` from 2.8 to 2.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/soupsieve/releases\"\u003esoupsieve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Changes in tests to accommodate latest Python HTML parser changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/f89979745e12e83dbb31dde910a0ad08e9c5c717\"\u003e\u003ccode\u003ef899797\u003c/code\u003e\u003c/a\u003e Adjust changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/1b964a850bb482cc183f3f70811b25487ba200ee\"\u003e\u003ccode\u003e1b964a8\u003c/code\u003e\u003c/a\u003e Switch to using Zensical for documents (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/046ce54956a0c30120038561e53b40994d29de2c\"\u003e\u003ccode\u003e046ce54\u003c/code\u003e\u003c/a\u003e Adjustments for changes in HTML parser (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/soupsieve/compare/2.8...2.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003cli\u003eIf you use custom decompressors, please make sure to update them to  respect the changed API of \u003ccode\u003eurllib3.response.ContentDecoder\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnabled retrieval, deletion, and membership testing in \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e using bytes keys. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded host and port information to string representations of \u003ccode\u003eHTTPConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 free-threading builds explicitly. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3696\"\u003e#3696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers\u003c/code\u003e. Removed the \u003ccode\u003eHTTPResponse.getheader(name, default)\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers.get(name, default)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3622\"\u003e#3622\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nben...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-libtest7/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-libtest7/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"3752479264","node_id":"PR_kwDOKEvyJc66ErC9","number":309,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 44 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T06:15:37.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T06:18:57.000Z","updated_at":"2026-01-05T06:15:39.000Z","time_to_close":1209400,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":44,"packages":[{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.2","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.7.19","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","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.7","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.2.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.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.8.3","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.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.12","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"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.5.1","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":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.18.17"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.2","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.33.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"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 43 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.2` | `7.13.0` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.7.19` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\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.7` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.2.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `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.2` | `3.4.4` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\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.5.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| ruamel-yaml | `0.18.14` | `0.18.17` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.2` | `0.50.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.33.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `black` from 25.1.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.2 to 7.13.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e\u003cem\u003e.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\n\u003ccode\u003eHenry Schreiner \u0026lt;pull 2100_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated: when coverage.py is installed, it creates three command entry\npoints: \u003ccode\u003ecoverage\u003c/code\u003e, \u003ccode\u003ecoverage3\u003c/code\u003e, and \u003ccode\u003ecoverage-3.10\u003c/code\u003e (if installed for\nPython 3.10). The second and third of these are not needed and will\neventually be removed. They still work for now, but print a message about\ntheir deprecation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1643: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1643\"\u003ecoveragepy/coveragepy#1643\u003c/a\u003e\n.. _pull 1952: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/1952\"\u003ecoveragepy/coveragepy#1952\u003c/a\u003e\n.. _pull 2100: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2100\"\u003ecoveragepy/coveragepy#2100\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-1b1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.1b1 — 2025-11-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: coverage.py now includes a permanent .pth file in the distribution which\nis installed with the code. This fixes \u003ccode\u003eissue 2084\u003c/code\u003e_: failure to patch for\nsubprocess measurement when site-packages is not writable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2084: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2084\"\u003ecoveragepy/coveragepy#2084\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.0 — 2025-11-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now shows separate coverage totals for statements and\nbranches, as well as the usual combined coverage percentage. Thanks to Ryuta\nOtsuka for the \u003ccode\u003ediscussion \u0026lt;issue 2081_\u0026gt;\u003c/code\u003e_ and the \u003ccode\u003eimplementation \u0026lt;pull 2085_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe JSON report now includes separate coverage totals for statements and\nbranches, thanks to \u003ccode\u003eRyuta Otsuka \u0026lt;pull 2090_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eexcept*\u003c/code\u003e clauses were not handled properly under the \u0026quot;sysmon\u0026quot;\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/coveragepy/coveragepy/commit/52fde9c828b5d1d17d2d49589a65bd2644402863\"\u003e\u003ccode\u003e52fde9c\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/69de0097f1ec77781bcd489bb9adb493a7db56a1\"\u003e\u003ccode\u003e69de009\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/01387fc66199f5bd885143c6ff1de55e587adefa\"\u003e\u003ccode\u003e01387fc\u003c/code\u003e\u003c/a\u003e docs: tweak changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/60206e8f8da2796a9472e214b003d42adcebd782\"\u003e\u003ccode\u003e60206e8\u003c/code\u003e\u003c/a\u003e chore: make edit_for_release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/78cfd57fe534bac8fd84b1b58b7a7e7a39f07974\"\u003e\u003ccode\u003e78cfd57\u003c/code\u003e\u003c/a\u003e docs: tweak CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/21e726fcfbb5282bf9f72f44c764dd7bcfb7d9d4\"\u003e\u003ccode\u003e21e726f\u003c/code\u003e\u003c/a\u003e feat: support \u003ccode\u003e.coveragerc.toml\u003c/code\u003e for configuration (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3914e5055f44e17e5753a7643fc0cefcc948bb2d\"\u003e\u003ccode\u003e3914e50\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d5e7c3ad0d557de2aff73d33a59f31a80b36ba6c\"\u003e\u003ccode\u003ed5e7c3a\u003c/code\u003e\u003c/a\u003e test: no need to group tests by needs_pth\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ed516c4a6568017d7e36cdcfb007b904687fda59\"\u003e\u003ccode\u003eed516c4\u003c/code\u003e\u003c/a\u003e test: fix metacov again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/da833a18b7670c2df84ab437b72560b627610063\"\u003e\u003ccode\u003eda833a1\u003c/code\u003e\u003c/a\u003e fix: use Development Status classifier properly. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2101\"\u003e#2101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.2...7.13.0\"\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.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2025.09.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epage.html: fix invalid HTML5 by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebase.html: fix trailing slash on void elements by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/895\"\u003epradyunsg/furo#895\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e_scaffold.sass: remove old scrollbar selectors by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/892\"\u003epradyunsg/furo#892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Blender to \u0026quot;used by\u0026quot; section by \u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\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/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.12.19\"\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.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.17.1...v1.19.1\"\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.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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.7 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.7...0.14.10\"\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 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/58473a8dac250898e1dc7dfac5622dc938264bb4\"\u003e\u003ccode\u003e58473a8\u003c/code\u003e\u003c/a\u003e Migrate to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/0d4f938d799a669658fc2b0ef3ede100d9abf5ab\"\u003e\u003ccode\u003e0d4f938\u003c/code\u003e\u003c/a\u003e Drop support for Python \u0026lt; 3.10, add Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/073353abfc0f6a72ca3fc33b7272072ec422cccb\"\u003e\u003ccode\u003e073353a\u003c/code\u003e\u003c/a\u003e Migrate setuptools, mypy configuration to pyproject.toml\u003c/li\u003e\n\u003cli\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-pypitemplate-instance/pull/309","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-pypitemplate-instance/issues/309","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/309/packages"},{"uuid":"3739088647","node_id":"PR_kwDOO_6LKs65YYsv","number":13,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 67 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-01T04:41:49.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-17T14:13:37.000Z","updated_at":"2026-01-01T04:41:51.000Z","time_to_close":1261692,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":67,"packages":[{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"scipy","old_version":"1.16.0","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"gmsh","old_version":"4.14.0","new_version":"4.15.0"},{"name":"pyvista","old_version":"0.46.2","new_version":"0.46.4","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pypardiso","old_version":"0.4.6","new_version":"0.4.7","repository_url":"https://github.com/haasad/PyPardiso"},{"name":"pyside6","old_version":"6.9.2","new_version":"6.10.1"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.9.25","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.16.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","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.0","new_version":"0.14.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx","old_version":"8.1.3","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"3.0.1","new_version":"3.5.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.2.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":"anyio","old_version":"4.9.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.6.15","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.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.12","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"intel-openmp","old_version":"2025.2.1","new_version":"2025.3.1"},{"name":"ipython","old_version":"8.37.0","new_version":"9.8.0","repository_url":"https://github.com/ipython/ipython"},{"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-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mkl","old_version":"2025.2.0","new_version":"2025.3.0","repository_url":"https://github.com/uxlfoundation/oneMath"},{"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":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.1.0","new_version":"14.2.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.18.16"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.15"},{"name":"scooby","old_version":"0.10.1","new_version":"0.11.0","repository_url":"https://github.com/banesullivan/scooby"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tbb","old_version":"2022.2.0","new_version":"2022.3.0","repository_url":"https://github.com/oneapi-src/oneTBB"},{"name":"tcmlib","old_version":"1.4.0","new_version":"1.4.1"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.31.2","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"vtk","old_version":"9.5.0","new_version":"9.5.2"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"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 63 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.0` | `1.16.3` |\n| [gmsh](https://gmsh.info) | `4.14.0` | `4.15.0` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.46.2` | `0.46.4` |\n| [pypardiso](https://github.com/haasad/PyPardiso) | `0.4.6` | `0.4.7` |\n| [pyside6](https://pyside.org) | `6.9.2` | `6.10.1` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.0` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.9.25` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\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.0` | `0.14.9` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.1.3` | `8.2.3` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.0.1` | `3.5.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.2.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `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.2` | `3.4.4` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [intel-openmp](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html) | `2025.2.1` | `2025.3.1` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `9.8.0` |\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-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [mkl](https://github.com/uxlfoundation/oneMath) | `2025.2.0` | `2025.3.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| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.1.0` | `14.2.0` |\n| ruamel-yaml | `0.18.14` | `0.18.16` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.15` |\n| [scooby](https://github.com/banesullivan/scooby) | `0.10.1` | `0.11.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.1` | `0.50.0` |\n| [tbb](https://github.com/oneapi-src/oneTBB) | `2022.2.0` | `2022.3.0` |\n| [tcmlib](https://oneapi-src.github.io/oneTBB/GSG/next_steps.html) | `1.4.0` | `1.4.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.38.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.31.2` | `20.35.4` |\n| [vtk](https://vtk.org) | `9.5.0` | `9.5.2` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `click` from 8.2.1 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/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\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 \u003ccode\u003eCliRunner\u003c/code\u003e. :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.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.2.1...8.3.1\"\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.8\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.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\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/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.3...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.0 to 1.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.16.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.3\u003c/code\u003e is a bug-fix release with no new features compared to \u003ccode\u003e1.16.2\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eChrisAB (1) +\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (3)\u003c/li\u003e\n\u003cli\u003eMatt Haberland (8)\u003c/li\u003e\n\u003cli\u003eNick ODell (2)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (1)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (28)\u003c/li\u003e\n\u003cli\u003eLucas Roberts (2)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 8 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003cp\u003eThe full issue and pull request lists, and the release asset hashes are available\nin the associated \u003ccode\u003eREADME.txt\u003c/code\u003e file.\u003c/p\u003e\n\u003ch1\u003eSciPy 1.16.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.2\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.16.1\u003c/code\u003e. This is the first stable release of\nSciPy to provide Windows on ARM wheels on PyPI.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eDietrich Brunn (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (6)\u003c/li\u003e\n\u003cli\u003eAdam Jones (1)\u003c/li\u003e\n\u003cli\u003eGleb Khmyznikov (1) +\u003c/li\u003e\n\u003cli\u003eJost Migenda (1) +\u003c/li\u003e\n\u003cli\u003enewyork_loki (1)\u003c/li\u003e\n\u003cli\u003eNick ODell (3)\u003c/li\u003e\n\u003cli\u003eDimitri Papadopoulos Orfanos (1)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (2)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (26)\u003c/li\u003e\n\u003cli\u003eMugunthan Selvanayagam (1) +\u003c/li\u003e\n\u003cli\u003eShuhei Watanabe (1) +\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 12 people contributed to this release.\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/scipy/scipy/commit/b9105ccc2237f57acb1060202cd77f6dd264fb34\"\u003e\u003ccode\u003eb9105cc\u003c/code\u003e\u003c/a\u003e REL: 1.16.3 rel commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/4b7699ceb2e7070e732f9a7e24aab46683f41305\"\u003e\u003ccode\u003e4b7699c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23805\"\u003e#23805\u003c/a\u003e from tylerjereddy/treddy_backports_1.16.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/874b75b11d09373c4e7b4fd12975f27d52af4714\"\u003e\u003ccode\u003e874b75b\u003c/code\u003e\u003c/a\u003e MAINT: PR 23805 wheel builds [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/de06a58d65ee0c0266ceb3adaca82c5405206bc4\"\u003e\u003ccode\u003ede06a58\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f642304717d140ede11bb095ee7cc5754e075d1d\"\u003e\u003ccode\u003ef642304\u003c/code\u003e\u003c/a\u003e TST: linalg.svd: skip on 32-bit due to limited memory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/df479083772fbfae5840c198f53ee938ffcd6dc6\"\u003e\u003ccode\u003edf47908\u003c/code\u003e\u003c/a\u003e CI: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f5840635ec2ae1d3ff023159c5e58936e9a2303d\"\u003e\u003ccode\u003ef584063\u003c/code\u003e\u003c/a\u003e TST: stats.boxcox_llf: bump test tolerance for Accelerate (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23864\"\u003e#23864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/fc60b2f449100a55bdb23777b6b5adc3cb38d61a\"\u003e\u003ccode\u003efc60b2f\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/0dd12ec9b92338005959bde3611375ceea18f73a\"\u003e\u003ccode\u003e0dd12ec\u003c/code\u003e\u003c/a\u003e BLD: stats.multivariate_normal: silence pythran build warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/d3b1e625735c1e7c8e9963f5f7c2dd5755636f9d\"\u003e\u003ccode\u003ed3b1e62\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;BLD: stats.multivariate_normal: suppress pythran build warning\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.0...v1.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gmsh` from 4.14.0 to 4.15.0\n\nUpdates `pyvista` from 0.46.2 to 0.46.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyvista/pyvista/releases\"\u003epyvista's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.46.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 by \u003ca href=\"https://github.com/user27182\"\u003e\u003ccode\u003e@​user27182\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyvista/pyvista/pull/8041\"\u003epyvista/pyvista#8041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.46.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003ePyVista \u003ccode\u003e0.46.0\u003c/code\u003e introduced a breaking change by requiring the use of \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e for setting new attributes (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/7716\"\u003e#7716\u003c/a\u003e). This patch release \u003ccode\u003e0.46.3\u003c/code\u003e relaxes this requirement by only requiring this for setting new \u003cem\u003epublic\u003c/em\u003e attributes. Private attributes (with a \u003ccode\u003e_\u003c/code\u003e prefix) can be set without the need to use \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\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/pyvista/pyvista/commit/eabebf9d2977ee0027d6f8e4d1c03ab39f03e8a9\"\u003e\u003ccode\u003eeabebf9\u003c/code\u003e\u003c/a\u003e Fix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8041\"\u003e#8041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/a6fa92498a9896bdba7d495b39273151c6e68cfa\"\u003e\u003ccode\u003ea6fa924\u003c/code\u003e\u003c/a\u003e Allow setting new private attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/dfa05fe8c21b0f72516b8dd7e1695fce8633b000\"\u003e\u003ccode\u003edfa05fe\u003c/code\u003e\u003c/a\u003e Bump version to 0.46.3\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypardiso` from 0.4.6 to 0.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/haasad/PyPardiso/releases\"\u003epypardiso's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.7\u003c/h2\u003e\n\u003cp\u003e5 changes since v0.4.6\u003c/p\u003e\n\u003ch2\u003e🚧 Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for macOS (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix failing tests for pip installed scipy (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type mismatch for sparse arrays (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📄 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse a valid SPDX identifier as license classifier (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚚 CI and Packaging\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun tests for currently supported Python versions (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\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/haasad/PyPardiso/commit/d78ba0108c09a391b99567877be7a45aefc8beb4\"\u003e\u003ccode\u003ed78ba01\u003c/code\u003e\u003c/a\u003e Fix license configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/2b287ca57b1c9919ca927bc6eeb8a136badb9260\"\u003e\u003ccode\u003e2b287ca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e from urob/fix-type-mismatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/04effe91176b7b2e3cf7a85be5fc97be4ec39450\"\u003e\u003ccode\u003e04effe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e from ecederstrand/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/405844b87dbbf111a77668088cac4d4900fef5ce\"\u003e\u003ccode\u003e405844b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\u003c/a\u003e from haasad/maint/python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/f5c7999884b5e8eb71e64ce39fb43f1ff8dd755a\"\u003e\u003ccode\u003ef5c7999\u003c/code\u003e\u003c/a\u003e Run tests for currently supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/d5eec2fdb417bb331ae5de2358ffbc691bb20cde\"\u003e\u003ccode\u003ed5eec2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e from haasad/breaking/remove-macos-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/c1da59caa1e53aa527aab261662087b2f7465ec6\"\u003e\u003ccode\u003ec1da59c\u003c/code\u003e\u003c/a\u003e Remove support for macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/53b301b48cadf086e0056c34fc6bf24a21566b35\"\u003e\u003ccode\u003e53b301b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e from haasad/fix/scipy-error-groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/5a759de7aba8d91ed6e2d1b2585686deed12f4f0\"\u003e\u003ccode\u003e5a759de\u003c/code\u003e\u003c/a\u003e Update changelog config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/a3ec43e43b4110b4696f44b0cb7207441af7bf58\"\u003e\u003ccode\u003ea3ec43e\u003c/code\u003e\u003c/a\u003e Test for ValueError or TypeError\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haasad/PyPardiso/compare/v0.4.6...v0.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyside6` from 6.9.2 to 6.10.1\n\nUpdates `black` from 25.1.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.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.1 to 7.13.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e\u003cem\u003e.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\n\u003ccode\u003eHenry Schreiner \u0026lt;pull 2100_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated: when coverage.py is installed, it creates three command entry\npoints: \u003ccode\u003ecoverage\u003c/code\u003e, \u003ccode\u003ecoverage3\u003c/code\u003e, and \u003ccode\u003ecoverage-3.10\u003c/code\u003e (if installed for\nPython 3.10). The second and third of these are not needed and will\neventually be removed. They still work for now, but print a message about\ntheir deprecation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1643: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1643\"\u003ecoveragepy/coveragepy#1643\u003c/a\u003e\n.. _pull 1952: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/1952\"\u003ecoveragepy/coveragepy#1952\u003c/a\u003e\n.. _pull 2100: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2100\"\u003ecoveragepy/coveragepy#2100\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-1b1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.1b1 — 2025-11-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: coverage.py now includes a permanent .pth file in the distribution which\nis installed with the code. This fixes \u003ccode\u003eissue 2084\u003c/code\u003e_: failure to patch for\nsubprocess measurement when site-packages is not writable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2084: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2084\"\u003ecoveragepy/coveragepy#2084\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.0 — 2025-11-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now shows separate coverage totals for statements and\nbranches, as well as the usual combined coverage percentage. Thanks to Ryuta\nOtsuka for the \u003ccode\u003ediscussion \u0026lt;issue 2081_\u0026gt;\u003c/code\u003e_ and the \u003ccode\u003eimplementation \u0026lt;pull 2085_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe JSON report now includes separate coverage totals for statements and\nbranches, thanks to \u003ccode\u003eRyuta Otsuka \u0026lt;pull 2090_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eexcept*\u003c/code\u003e clauses were not handled properly under the \u0026quot;sysmon\u0026quot;\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/coveragepy/coveragepy/commit/52fde9c828b5d1d17d2d49589a65bd2644402863\"\u003e\u003ccode\u003e52fde9c\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/69de0097f1ec77781bcd489bb9adb493a7db56a1\"\u003e\u003ccode\u003e69de009\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/01387fc66199f5bd885143c6ff1de55e587adefa\"\u003e\u003ccode\u003e01387fc\u003c/code\u003e\u003c/a\u003e docs: tweak changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/60206e8f8da2796a9472e214b003d42adcebd782\"\u003e\u003ccode\u003e60206e8\u003c/code\u003e\u003c/a\u003e chore: make edit_for_release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/78cfd57fe534bac8fd84b1b58b7a7e7a39f07974\"\u003e\u003ccode\u003e78cfd57\u003c/code\u003e\u003c/a\u003e docs: tweak CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/21e726fcfbb5282bf9f72f44c764dd7bcfb7d9d4\"\u003e\u003ccode\u003e21e726f\u003c/code\u003e\u003c/a\u003e feat: support \u003ccode\u003e.coveragerc.toml\u003c/code\u003e for configuration (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3914e5055f44e17e5753a7643fc0cefcc948bb2d\"\u003e\u003ccode\u003e3914e50\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d5e7c3ad0d557de2aff73d33a59f31a80b36ba6c\"\u003e\u003ccode\u003ed5e7c3a\u003c/code\u003e\u003c/a\u003e test: no need to group tests by needs_pth\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ed516c4a6568017d7e36cdcfb007b904687fda59\"\u003e\u003ccode\u003eed516c4\u003c/code\u003e\u003c/a\u003e test: fix metacov again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/da833a18b7670c2df84ab437b72560b627610063\"\u003e\u003ccode\u003eda833a1\u003c/code\u003e\u003c/a\u003e fix: use Development Status classifier properly. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2101\"\u003e#2101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2024.8.6 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\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/e2cbfce534e434c9743fae85839790ffb8fea2a2\"\u003e\u003ccode\u003ee2cbfce\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.07.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/2753741615d13f00f2f5a361d9794727558d82ee\"\u003e\u003ccode\u003e2753741\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...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.16.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...v1.19.1\"\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.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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\u003cco...\n\n_Description has been truncated_","html_url":"https://github.com/DanBeranek/temperatureanalysis/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanBeranek%2Ftemperatureanalysis/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"},{"uuid":"3737043190","node_id":"PR_kwDOF0i5Q865Remz","number":616,"state":"closed","title":"chore: Bump the python-packages group with 23 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-07T02:07:04.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-17T02:10:22.000Z","updated_at":"2026-01-07T02:07:06.000Z","time_to_close":1814202,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: Bump","group_name":"python-packages","update_count":23,"packages":[{"name":"awesomeversion","old_version":"25.5.0","new_version":"25.8.0","repository_url":"https://github.com/ludeeus/awesomeversion"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"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.7","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"jupyterlab","old_version":"4.4.7","new_version":"4.5.1","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"python-lsp-server","old_version":"1.13.1","new_version":"1.14.0"},{"name":"reuse","old_version":"5.1.1","new_version":"6.2.0","repository_url":"https://github.com/fsfe/reuse-tool"},{"name":"ruff","old_version":"0.13.1","new_version":"0.14.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-colorama","old_version":"0.4.15.20240311","new_version":"0.4.15.20250801","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-docutils","old_version":"0.21.0.20250604","new_version":"0.22.3.20251115","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-lxml","old_version":"2025.3.30","new_version":"2025.11.25","repository_url":"https://github.com/abelcheung/types-lxml"},{"name":"types-pygments","old_version":"2.19.0.20250516","new_version":"2.19.0.20251121","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-pytz","old_version":"2025.2.0.20250516","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-pyyaml","old_version":"6.0.12.20250516","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250611","new_version":"2.32.4.20250913","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"68.0.0.1","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-six","old_version":"1.17.0.20250515","new_version":"1.17.0.20251009","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"furo","old_version":"2025.7.19","new_version":"2025.9.25","repository_url":"https://github.com/pradyunsg/furo"},{"name":"nbsphinx","old_version":"0.9.7","new_version":"0.9.8","repository_url":"https://github.com/spatialaudio/nbsphinx"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 23 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [awesomeversion](https://github.com/ludeeus/awesomeversion) | `25.5.0` | `25.8.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.7` | `4.5.1` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.7` | `4.5.1` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [python-lsp-server[rope]](https://github.com/python-lsp/python-lsp-server) | `1.13.1` | `1.14.0` |\n| [reuse](https://github.com/fsfe/reuse-tool) | `5.1.1` | `6.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.1` | `0.14.9` |\n| [types-colorama](https://github.com/typeshed-internal/stub_uploader) | `0.4.15.20240311` | `0.4.15.20250801` |\n| [types-docutils](https://github.com/typeshed-internal/stub_uploader) | `0.21.0.20250604` | `0.22.3.20251115` |\n| [types-lxml](https://github.com/abelcheung/types-lxml) | `2025.3.30` | `2025.11.25` |\n| [types-pygments](https://github.com/typeshed-internal/stub_uploader) | `2.19.0.20250516` | `2.19.0.20251121` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250516` | `2025.2.0.20251108` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250516` | `6.0.12.20250915` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250611` | `2.32.4.20250913` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `68.0.0.1` | `80.9.0.20250822` |\n| [types-six](https://github.com/typeshed-internal/stub_uploader) | `1.17.0.20250515` | `1.17.0.20251009` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.7.19` | `2025.9.25` |\n| [nbsphinx](https://github.com/spatialaudio/nbsphinx) | `0.9.7` | `0.9.8` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n\nUpdates `awesomeversion` from 25.5.0 to 25.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ludeeus/awesomeversion/releases\"\u003eawesomeversion's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.8.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor AwesomeVersion comparison methods and optimize regex patterns for performance by \u003ca href=\"https://github.com/ludeeus\"\u003e\u003ccode\u003e@​ludeeus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/420\"\u003eludeeus/awesomeversion#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor AwesomeVersion comparison methods for improved validation and strategy handling by \u003ca href=\"https://github.com/ludeeus\"\u003e\u003ccode\u003e@​ludeeus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/421\"\u003eludeeus/awesomeversion#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace poetry with uv by \u003ca href=\"https://github.com/ludeeus\"\u003e\u003ccode\u003e@​ludeeus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/424\"\u003eludeeus/awesomeversion#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pr template by \u003ca href=\"https://github.com/ludeeus\"\u003e\u003ccode\u003e@​ludeeus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/431\"\u003eludeeus/awesomeversion#431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix compound modifier comparison by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/423\"\u003eludeeus/awesomeversion#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/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/427\"\u003eludeeus/awesomeversion#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/423\"\u003eludeeus/awesomeversion#423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ludeeus/awesomeversion/compare/25.5.0...25.8.0\"\u003ehttps://github.com/ludeeus/awesomeversion/compare/25.5.0...25.8.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/ludeeus/awesomeversion/commit/88a09dd69d61d836fedb025b07efca38a2e82f50\"\u003e\u003ccode\u003e88a09dd\u003c/code\u003e\u003c/a\u003e Simplify the demo (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/a30855ff549544b2c156625bd2254d2420cea00f\"\u003e\u003ccode\u003ea30855f\u003c/code\u003e\u003c/a\u003e Update dependency font-awesome to v7 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/440\"\u003e#440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/242639682fcd9658f821ac84ed0c54d0dec3d1d3\"\u003e\u003ccode\u003e2426396\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v6.4.3 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/441\"\u003e#441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/3eb927a8900e05a6c60199332f05f741ebe0aa66\"\u003e\u003ccode\u003e3eb927a\u003c/code\u003e\u003c/a\u003e Update CodSpeedHQ/action action to v3.8.0 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/d83349bfce594c5bfa1b985ab02cf6f44a187d8d\"\u003e\u003ccode\u003ed83349b\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v6.4.1 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/0be8e241c2743587a3b1c1c174139c7b44ab96d6\"\u003e\u003ccode\u003e0be8e24\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v6.4.0 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/437\"\u003e#437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/c2c1eeb245547381bde7b477c88203b8f9e92e2a\"\u003e\u003ccode\u003ec2c1eeb\u003c/code\u003e\u003c/a\u003e Update CodSpeedHQ/action action to v3.7.0 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/436\"\u003e#436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/469d70e4bae4f4afb32ed1826fcf9141848aae9f\"\u003e\u003ccode\u003e469d70e\u003c/code\u003e\u003c/a\u003e Update CodSpeedHQ/action action to v3.6.1 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/52a00a0b19c0f5c808a6861b553f38726d674aa7\"\u003e\u003ccode\u003e52a00a0\u003c/code\u003e\u003c/a\u003e Add benchmarks for version sorting, edge cases, operations, and strategy dete...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/9986274d2984a6883e11908c8222dc28bfca57d4\"\u003e\u003ccode\u003e9986274\u003c/code\u003e\u003c/a\u003e Update dependency font-awesome to v6.7.2 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ludeeus/awesomeversion/compare/25.5.0...25.8.0\"\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 `pillow` from 11.2.1 to 12.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.0.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for FreeType \u0026lt;= 2.9.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9159\"\u003e#9159\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9119\"\u003e#9119\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRemove deprecations for Pillow 12.0.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9053\"\u003e#9053\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate Image._show \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9186\"\u003e#9186\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDeprecate ImageCmsProfile product_name and product_info \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8995\"\u003e#8995\u003c/a\u003e [\u003ca href=\"https://github.com/lukegb\"\u003e\u003ccode\u003e@​lukegb\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImagingHistogramInstance can use two bands \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9251\"\u003e#9251\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate 12.0.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9247\"\u003e#9247\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded ImageDraw alpha channel examples \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9201\"\u003e#9201\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9230\"\u003e#9230\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9209\"\u003e#9209\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd GitHub profile link to release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9197\"\u003e#9197\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSplit versionadded info \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9190\"\u003e#9190\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocument ImageFile.MAXBLOCK \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9163\"\u003e#9163\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated macOS version in CI targets \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9157\"\u003e#9157\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typos \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9135\"\u003e#9135\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded \u0026quot;Colors\u0026quot; to concepts \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9067\"\u003e#9067\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9068\"\u003e#9068\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eThanks, folks! \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9056\"\u003e#9056\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSetup nit: \u0026quot;fork\u0026quot; should be lowercased \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9055\"\u003e#9055\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9246\"\u003e#9246\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9233\"\u003e#9233\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003epre-commit-ci[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 12.1.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9218\"\u003e#9218\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libtiff to 4.7.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9222\"\u003e#9222\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate FreeType to 2.14.1 on macOS and Linux wheels \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9217\"\u003e#9217\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9219\"\u003e#9219\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.6.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9202\"\u003e#9202\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate openjpeg to 2.5.4 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9215\"\u003e#9215\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 11.5.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9203\"\u003e#9203\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.18.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9213\"\u003e#9213\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.18.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9207\"\u003e#9207\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9194\"\u003e#9194\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 11.4.5 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9150\"\u003e#9150\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.2.5 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9140\"\u003e#9140\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate raqm to 0.10.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9137\"\u003e#9137\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9188\"\u003e#9188\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9180\"\u003e#9180\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003epre-commit-ci[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/693df7b42c666f88c719f9973be0ad71607328e0\"\u003e\u003ccode\u003e693df7b\u003c/code\u003e\u003c/a\u003e 12.0.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/d175bb88a302e161173e05b1c4103910d7366623\"\u003e\u003ccode\u003ed175bb8\u003c/code\u003e\u003c/a\u003e Use macos-14 for iOS arm64 simulator (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9258\"\u003e#9258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/592b2f820aa1f75f8ae8bf4f30e1b4bc62023535\"\u003e\u003ccode\u003e592b2f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Use macos-latest for iOS arm64 simulator\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5dddb2ce94a715e54442c1d30c9ffc04914d96fe\"\u003e\u003ccode\u003e5dddb2c\u003c/code\u003e\u003c/a\u003e Use enums for Modes and RawModes in C (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9256\"\u003e#9256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/e7b72a3bbdec4e3f4120e6b5fe4082d78315ff13\"\u003e\u003ccode\u003ee7b72a3\u003c/code\u003e\u003c/a\u003e Add ImageText (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9098\"\u003e#9098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/864d4b6e0937e9d468de26b933f31b1639e0f22a\"\u003e\u003ccode\u003e864d4b6\u003c/code\u003e\u003c/a\u003e Shift bits before making value negative (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9255\"\u003e#9255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/994a9def5d94bc59b60447bbab445834f7f9f9bf\"\u003e\u003ccode\u003e994a9de\u003c/code\u003e\u003c/a\u003e Install arro3 dependencies when type checking (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9254\"\u003e#9254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/d5e1601b32ea43b45ce8f820e4b349e9b5e2dd6c\"\u003e\u003ccode\u003ed5e1601\u003c/code\u003e\u003c/a\u003e Improved documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/e533ccccfcef79c031ac1178a9b78db2fb000a6f\"\u003e\u003ccode\u003ee533ccc\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into imagetext\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/95a85dc6693ca221643906214b0e1f4590986c0f\"\u003e\u003ccode\u003e95a85dc\u003c/code\u003e\u003c/a\u003e Use snake case\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.2.1...12.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.7 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix no-ctypes fallback on windows by \u003ca href=\"https://github.com/youknowone\"\u003e\u003ccode\u003e@​youknowone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/403\"\u003etox-dev/platformdirs#403\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/376\"\u003etox-dev/platformdirs#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/378\"\u003etox-dev/platformdirs#378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/379\"\u003etox-dev/platformdirs#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/381\"\u003etox-dev/platformdirs#381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/382\"\u003etox-dev/platformdirs#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/383\"\u003etox-dev/platformdirs#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Windows file paths in README by \u003ca href=\"https://github.com/ParadaCarleton\"\u003e\u003ccode\u003e@​ParadaCarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/385\"\u003etox-dev/platformdirs#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/384\"\u003etox-dev/platformdirs#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/387\"\u003etox-dev/platformdirs#387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6 to 7 in the all group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/388\"\u003etox-dev/platformdirs#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop 3.9 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/389\"\u003etox-dev/platformdirs#389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ParadaCarleton\"\u003e\u003ccode\u003e@​ParadaCarleton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/385\"\u003etox-dev/platformdirs#385\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0\u003c/a\u003e\u003c/p\u003e\n\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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/e4dbdb8c8ed8e448b7cdbbdce4a4ff5c54c5d685\"\u003e\u003ccode\u003ee4dbdb8\u003c/code\u003e\u003c/a\u003e Fix no-ctypes fallback on windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/4cc78aa59bbfa63a993213794f218dac327cf625\"\u003e\u003ccode\u003e4cc78aa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/b624d78851775551b6285c2759cb49325548459b\"\u003e\u003ccode\u003eb624d78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/eb06e7ed58b52ef3876a24393c6235e3928443ec\"\u003e\u003ccode\u003eeb06e7e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/85efbe91422e0b0df64f646dbfe9adb0dff07ed1\"\u003e\u003ccode\u003e85efbe9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/704c603bd3299283b2132f6b4d27daaa4fa2acbf\"\u003e\u003ccode\u003e704c603\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a01817810d92510cfa9cb9e51e7f38094e2fd9b9\"\u003e\u003ccode\u003ea018178\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9920b9bd6b1752d4b1420a3237385dcd3a6ea840\"\u003e\u003ccode\u003e9920b9b\u003c/code\u003e\u003c/a\u003e Bump the all group with 2 updates (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c80472486f4939b795f8552f6b4e629c3db1f538\"\u003e\u003ccode\u003ec804724\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a6a24895db89fe81d8863ca25d1ebeb101fce80b\"\u003e\u003ccode\u003ea6a2489\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/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\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 \u003ccode\u003eCliRunner\u003c/code\u003e. :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.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.2.1...8.3.1\"\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.5.1\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.5.1\u003c/h2\u003e\n\u003ch2\u003e4.5.1\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.5.0...0631dcf3bc4333594a02ee975f00c37a937591f5\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eDeprecated features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrives: Deprecate the notion of defaultContentProvider \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18169\"\u003e#18169\u003c/a\u003e (\u003ca href=\"https://github.com/martinRenou\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect and log slow plugins \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18181\"\u003e#18181\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\u003eDebugger: Fix restart and debug command. \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18115\"\u003e#18115\u003c/a\u003e (\u003ca href=\"https://github.com/HaudinFlorence\"\u003e\u003ccode\u003e@​HaudinFlorence\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003escrollPastEnd\u003c/code\u003e for text editors \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18186\"\u003e#18186\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\u003eEnable undo/redo in JSON settings editor \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18165\"\u003e#18165\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\u003eRestore focus after closing the command palette \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18167\"\u003e#18167\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\u003eRestore auto-resizing of the code console input prompts \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17819\"\u003e#17819\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Safely handle missing args in fileeditor:change-font-size label provider \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18157\"\u003e#18157\u003c/a\u003e (\u003ca href=\"https://github.com/prajyot-porje\"\u003e\u003ccode\u003e@​prajyot-porje\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\u003eCheck if the list of commands, tokens and plugins has changed \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18198\"\u003e#18198\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate to Playwright 1.57.0 \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18151\"\u003e#18151\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReconfigure 4.5.x branch \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18161\"\u003e#18161\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\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\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-11-18\u0026amp;to=2025-12-15\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/FoSuCloud\"\u003e\u003ccode\u003e@​FoSuCloud\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AFoSuCloud+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/HaudinFlorence\"\u003e\u003ccode\u003e@​HaudinFlorence\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AHaudinFlorence+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aianthomas23+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajasongrout+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/martinRenou\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/meeseeksmachine\"\u003e\u003ccode\u003e@​meeseeksmachine\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Meriem-BenIsmail\"\u003e\u003ccode\u003e@​Meriem-BenIsmail\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMeriem-BenIsmail+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/prajyot-porje\"\u003e\u003ccode\u003e@​prajyot-porje\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aprajyot-porje+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/xc2\"\u003e\u003ccode\u003e@​xc2\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Axc2+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.4.1...05df0d2487691b9bbf9d5e606238702152c3c634\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eNew features added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd terminal search functionality \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17691\"\u003e#17691\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/b26069443d4dffb4ae7e1f65b5aa3647fdad9e72\"\u003e\u003ccode\u003eb260694\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/0631dcf3bc4333594a02ee975f00c37a937591f5\"\u003e\u003ccode\u003e0631dcf\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18181\"\u003e#18181\u003c/a\u003e: Detect and log slow plugins (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18212\"\u003e#18212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/90154e1f0d1acbd9bb7c811626ad6af42c978429\"\u003e\u003ccode\u003e90154e1\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18198\"\u003e#18198\u003c/a\u003e: Check if the list of commands, tokens and plugins has cha...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/7e59a10b7b56e27a419ccff6a9435a6c54a3f004\"\u003e\u003ccode\u003e7e59a10\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18157\"\u003e#18157\u003c/a\u003e: Fix: Safely handle missing args in fileeditor:change-font...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/67ca4986ad5608cd2089cb257ce0e62a87576f02\"\u003e\u003ccode\u003e67ca498\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18115\"\u003e#18115\u003c/a\u003e: Debugger: Fix restart and debug command. (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18200\"\u003e#18200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/3b2ae56ec8f96471e8864f6278ebaf172750bb5a\"\u003e\u003ccode\u003e3b2ae56\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18186\"\u003e#18186\u003c/a\u003e: Fix \u003ccode\u003escrollPastEnd\u003c/code\u003e for text editors (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18197\"\u003e#18197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/4318162eb4127acabb523c5e1295630bd0ef905e\"\u003e\u003ccode\u003e4318162\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18169\"\u003e#18169\u003c/a\u003e: Drives: Deprecate the notion of defaultContentProvider (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/32a36a233a0f4f4f87a4484a399365a867f6b333\"\u003e\u003ccode\u003e32a36a2\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18165\"\u003e#18165\u003c/a\u003e: Enable undo/redo in JSON settings editor (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18187\"\u003e#18187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/a0572e602296fe3d89f77980ce20576369d484d4\"\u003e\u003ccode\u003ea0572e6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18167\"\u003e#18167\u003c/a\u003e: Restore focus after closing the command palette (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18172\"\u003e#18172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/3b5cccabca22ac96e5e1db98625474a97c7f70ed\"\u003e\u003ccode\u003e3b5ccca\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17819\"\u003e#17819\u003c/a\u003e: Restore auto-resizing of the code console input prompts (...\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.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.15.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.15.0...v1.19.1\"\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.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-lsp-server[rope]` from 1.13.1 to 1.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-lsp/python-lsp-server/releases\"\u003epython-lsp-server[rope]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.14.0\u003c/h2\u003e\n\u003cp\u003eMinor release with the following new features and changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epylsp.signature.include_docstring\u003c/code\u003e option to hide docstring in signatures.\u003c/li\u003e\n\u003cli\u003eAdd support for Pylint 4.\u003c/li\u003e\n\u003cli\u003eFix support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.13.2\u003c/h2\u003e\n\u003cp\u003eThis is a minor bugfix release that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrevents showing \u003ccode\u003ecmd\u003c/code\u003e terminals on Windows when running Flake8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-lsp/python-lsp-server/blob/develop/CHANGELOG.md\"\u003epython-lsp-server[rope]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.14.0 (2025/12/06)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epylsp.signature.include_docstring\u003c/code\u003e to hide docstring in signatures.\u003c/li\u003e\n\u003cli\u003eAdd suppor...\n\n_Description has been truncated_","html_url":"https://github.com/dbinfrago/py-capellambse/pull/616","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbinfrago%2Fpy-capellambse/issues/616","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/616/packages"},{"uuid":"3734010539","node_id":"PR_kwDOLUtxJc65HLqF","number":106,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 45 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-16T10:28:55.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-16T09:44:13.000Z","updated_at":"2025-12-16T10:28:57.000Z","time_to_close":2682,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":45,"packages":[{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"black","old_version":"25.9.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.2","new_version":"0.14.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"jupytext","old_version":"1.17.3","new_version":"1.18.1","repository_url":"https://github.com/mwouts/jupytext"},{"name":"ipykernel","old_version":"6.30.1","new_version":"6.31.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"statsmodels","old_version":"0.14.5","new_version":"0.14.6","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"pandas-stubs","old_version":"2.3.2.250926","new_version":"2.3.3.251201","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"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.14.2","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.8.3","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.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"debugpy","old_version":"1.8.17","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.14","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jupyter-client","old_version":"8.6.3","new_version":"8.7.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"patsy","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/pydata/patsy"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"psutil","old_version":"7.1.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.18.16"},{"name":"ruamel-yaml-clib","old_version":"0.2.14","new_version":"0.2.15"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"tornado","old_version":"6.5.2","new_version":"6.5.4","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.0` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.2` | `0.14.9` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [jupytext](https://github.com/mwouts/jupytext) | `1.17.3` | `1.18.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `6.31.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.5` | `0.14.6` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.2.250926` | `2.3.3.251201` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.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.14.2` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `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.3` | `3.4.4` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.17` | `1.8.19` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.14` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.6.3` | `8.7.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [patsy](https://github.com/pydata/patsy) | `1.0.1` | `1.0.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.1.3` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.18.16` |\n| ruamel-yaml-clib | `0.2.14` | `0.2.15` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.2` | `6.5.4` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.38.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n\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 `black` from 25.9.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e\u003cem\u003e.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\n\u003ccode\u003eHenry Schreiner \u0026lt;pull 2100_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated: when coverage.py is installed, it creates three command entry\npoints: \u003ccode\u003ecoverage\u003c/code\u003e, \u003ccode\u003ecoverage3\u003c/code\u003e, and \u003ccode\u003ecoverage-3.10\u003c/code\u003e (if installed for\nPython 3.10). The second and third of these are not needed and will\neventually be removed. They still work for now, but print a message about\ntheir deprecation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1643: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1643\"\u003ecoveragepy/coveragepy#1643\u003c/a\u003e\n.. _pull 1952: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/1952\"\u003ecoveragepy/coveragepy#1952\u003c/a\u003e\n.. _pull 2100: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2100\"\u003ecoveragepy/coveragepy#2100\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-1b1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.1b1 — 2025-11-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: coverage.py now includes a permanent .pth file in the distribution which\nis installed with the code. This fixes \u003ccode\u003eissue 2084\u003c/code\u003e_: failure to patch for\nsubprocess measurement when site-packages is not writable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2084: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2084\"\u003ecoveragepy/coveragepy#2084\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.0 — 2025-11-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now shows separate coverage totals for statements and\nbranches, as well as the usual combined coverage percentage. Thanks to Ryuta\nOtsuka for the \u003ccode\u003ediscussion \u0026lt;issue 2081_\u0026gt;\u003c/code\u003e_ and the \u003ccode\u003eimplementation \u0026lt;pull 2085_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe JSON report now includes separate coverage totals for statements and\nbranches, thanks to \u003ccode\u003eRyuta Otsuka \u0026lt;pull 2090_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eexcept*\u003c/code\u003e clauses were not handled properly under the \u0026quot;sysmon\u0026quot;\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/coveragepy/coveragepy/commit/52fde9c828b5d1d17d2d49589a65bd2644402863\"\u003e\u003ccode\u003e52fde9c\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/69de0097f1ec77781bcd489bb9adb493a7db56a1\"\u003e\u003ccode\u003e69de009\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/01387fc66199f5bd885143c6ff1de55e587adefa\"\u003e\u003ccode\u003e01387fc\u003c/code\u003e\u003c/a\u003e docs: tweak changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/60206e8f8da2796a9472e214b003d42adcebd782\"\u003e\u003ccode\u003e60206e8\u003c/code\u003e\u003c/a\u003e chore: make edit_for_release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/78cfd57fe534bac8fd84b1b58b7a7e7a39f07974\"\u003e\u003ccode\u003e78cfd57\u003c/code\u003e\u003c/a\u003e docs: tweak CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/21e726fcfbb5282bf9f72f44c764dd7bcfb7d9d4\"\u003e\u003ccode\u003e21e726f\u003c/code\u003e\u003c/a\u003e feat: support \u003ccode\u003e.coveragerc.toml\u003c/code\u003e for configuration (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3914e5055f44e17e5753a7643fc0cefcc948bb2d\"\u003e\u003ccode\u003e3914e50\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d5e7c3ad0d557de2aff73d33a59f31a80b36ba6c\"\u003e\u003ccode\u003ed5e7c3a\u003c/code\u003e\u003c/a\u003e test: no need to group tests by needs_pth\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ed516c4a6568017d7e36cdcfb007b904687fda59\"\u003e\u003ccode\u003eed516c4\u003c/code\u003e\u003c/a\u003e test: fix metacov again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/da833a18b7670c2df84ab437b72560b627610063\"\u003e\u003ccode\u003eda833a1\u003c/code\u003e\u003c/a\u003e fix: use Development Status classifier properly. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2101\"\u003e#2101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.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.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/1af6c8fa9502336c6977c2ff3e79185bd97a6e57\"\u003e\u003ccode\u003e1af6c8f\u003c/code\u003e\u003c/a\u003e v4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/3358a3b54077cd8c8c99618aed003b771a21cb65\"\u003e\u003ccode\u003e3358a3b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e from pre-commit/hazmat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/bdf68790b78158268bbc8482f76491a61d75809a\"\u003e\u003ccode\u003ebdf6879\u003c/code\u003e\u003c/a\u003e add pre-commit hazmat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/e436690f140cbbe1d0f359654edf3ab9ecb8da2d\"\u003e\u003ccode\u003ee436690\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3584\"\u003e#3584\u003c/a\u003e from pre-commit/exitstack\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8d34f95308fc4c14dea3d3e90153acfdaf55e2de\"\u003e\u003ccode\u003e8d34f95\u003c/code\u003e\u003c/a\u003e use ExitStack instead of start + stop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/9c7ea88ab95cb063cb0f0b74f395ff7b9cdbe0c5\"\u003e\u003ccode\u003e9c7ea88\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3583\"\u003e#3583\u003c/a\u003e from pre-commit/forward-compat-map-manifest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/844dacc168d68a32553ecf8a99178ab395fdb11e\"\u003e\u003ccode\u003e844dacc\u003c/code\u003e\u003c/a\u003e add forward-compat error message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6a1d543e523a02bbaad43da7df594cedff242abd\"\u003e\u003ccode\u003e6a1d543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3582\"\u003e#3582\u003c/a\u003e from pre-commit/move-gc-back\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/66278a9a0b69a69fde820d2b85a7e198eae52981\"\u003e\u003ccode\u003e66278a9\u003c/code\u003e\u003c/a\u003e move logic for gc back to commands.gc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/1b32c50bc7e2f6b603b7ce26ecdf67c9c9dee3c6\"\u003e\u003ccode\u003e1b32c50\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3579\"\u003e#3579\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/compare/v4.3.0...v4.5.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.2 to 0.14.9\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.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-11.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New \u003ccode\u003eRUF100\u003c/code\u003e diagnostics for unused range suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21783\"\u003e#21783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Detect subclasses of builtin exceptions (\u003ccode\u003ePLW0133\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21382\"\u003e#21382\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix comment placement in lambda parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21868\"\u003e#21868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip over trivia tokens after re-lexing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21895\"\u003e#21895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix false positive when using non-standard \u003ccode\u003eCSafeLoader\u003c/code\u003e path (S506). (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21830\"\u003e#21830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Accept immutable slice default arguments (\u003ccode\u003eB008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21823\"\u003e#21823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Suppress \u003ccode\u003eD417\u003c/code\u003e for parameters with \u003ccode\u003eUnpack\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21816\"\u003e#21816\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ememchr\u003c/code\u003e for computing line indexes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21838\"\u003e#21838\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument \u003ccode\u003e*.pyw\u003c/code\u003e is included by default in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21885\"\u003e#21885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument range suppressions, reorganize suppression docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21884\"\u003e#21884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate mkdocs-material to 9.7.0 (Insiders now free) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21797\"\u003e#21797\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/Avasam\"\u003e\u003ccode\u003e@​Avasam\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/phongddo\"\u003e\u003ccode\u003e@​phongddo\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/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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/LoicRiegel\"\u003e\u003ccode\u003e@​LoicRiegel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.9\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.14.9/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-11.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New \u003ccode\u003eRUF100\u003c/code\u003e diagnostics for unused range suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21783\"\u003e#21783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Detect subclasses of builtin exceptions (\u003ccode\u003ePLW0133\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21382\"\u003e#21382\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix comment placement in lambda parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21868\"\u003e#21868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip over trivia tokens after re-lexing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21895\"\u003e#21895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix false positive when using non-standard \u003ccode\u003eCSafeLoader\u003c/code\u003e path (S506). (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21830\"\u003e#21830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Accept immutable slice default arguments (\u003ccode\u003eB008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21823\"\u003e#21823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Suppress \u003ccode\u003eD417\u003c/code\u003e for parameters with \u003ccode\u003eUnpack\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21816\"\u003e#21816\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ememchr\u003c/code\u003e for computing line indexes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21838\"\u003e#21838\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument \u003ccode\u003e*.pyw\u003c/code\u003e is included by default in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21885\"\u003e#21885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument range suppressions, reorganize suppression docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21884\"\u003e#21884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate mkdocs-material to 9.7.0 (Insiders now free) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21797\"\u003e#21797\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/Avasam\"\u003e\u003ccode\u003e@​Avasam\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/phongddo\"\u003e\u003ccode\u003e@​phongddo\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/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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/LoicRiegel\"\u003e\u003ccode\u003e@​LoicRiegel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Catch \u003ccode\u003eyield\u003c/code\u003e expressions within other statements (\u003ccode\u003eB901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21200\"\u003e#21200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark fixes unsafe for return type changes (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21440\"\u003e#21440\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/3f63ea4b504d50eaf3c479de68e4017d2434a160\"\u003e\u003ccode\u003e3f63ea4\u003c/code\u003e\u003c/a\u003e Prepare 0.14.9 release (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21927\"\u003e#21927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c8851ecf704c1e989c5b840e2d53ac24210b4aec\"\u003e\u003ccode\u003ec8851ec\u003c/code\u003e\u003c/a\u003e [ty] Defer all parameter and return type annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21906\"\u003e#21906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d442433e93840edc47f77ab10a85ebfbcb18211b\"\u003e\u003ccode\u003ed442433\u003c/code\u003e\u003c/a\u003e [ty] Fix workspace symbols to return members too (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21926\"\u003e#21926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c055d665ef4bbf4002a8c07bdf9b9e76c065a26b\"\u003e\u003ccode\u003ec055d66\u003c/code\u003e\u003c/a\u003e Document range suppressions, reorganize suppression docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21884\"\u003e#21884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7a578ce8334d4a1e75f91b1c600fa035f0469bed\"\u003e\u003ccode\u003e7a578ce\u003c/code\u003e\u003c/a\u003e Ignore ruff:isort like ruff:noqa in new suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21922\"\u003e#21922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/34f7a04ef7ecb620658038c1db62a4204eb85388\"\u003e\u003ccode\u003e34f7a04\u003c/code\u003e\u003c/a\u003e [ty] Handle \u003ccode\u003eDefinition\u003c/code\u003es in \u003ccode\u003eSemanticModel::scope\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21919\"\u003e#21919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c9fe4e2703365b868a3b08364bf9673cef36f13f\"\u003e\u003ccode\u003ec9fe4e2\u003c/code\u003e\u003c/a\u003e [ty] Attach salsa db when running ide tests for easier debugging (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21917\"\u003e#21917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/fbeeb050af15a96cec59d5e6d7e9a166579b3433\"\u003e\u003ccode\u003efbeeb05\u003c/code\u003e\u003c/a\u003e [ty] Don't show hover for expressions with no inferred type (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21924\"\u003e#21924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4fdb4e8219bf8e7b8001121dd61a7c3678200bbf\"\u003e\u003ccode\u003e4fdb4e8\u003c/code\u003e\u003c/a\u003e [ty] avoid unions of generic aliases of the same class in fixpoint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21909\"\u003e#21909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c548ef20278f18ec9e88796fd0a1c4b5b5395a40\"\u003e\u003ccode\u003ec548ef2\u003c/code\u003e\u003c/a\u003e [ty] Squash false positive logs for failing to find \u003ccode\u003ebuiltins\u003c/code\u003e as a real module\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.2...0.14.9\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/blob/main/CHANGELOG.md\"\u003edeptry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0 - 2025-11-09\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/commit/4cc2d65ce1343957c911ca45709d6080cb9f82c3\"\u003e\u003ccode\u003e4cc2d65\u003c/code\u003e\u003c/a\u003e docs(changelog): add 0.24.0 release notes (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/8757b318e9974bbfa7ec65dabf999bc935ac026f\"\u003e\u003ccode\u003e8757b31\u003c/code\u003e\u003c/a\u003e chore: sync all dependency groups by default and run mypy locally (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1337\"\u003e#1337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/5ebc5c066831dd3dfeef7e79a4ae4f5934d744b9\"\u003e\u003ccode\u003e5ebc5c0\u003c/code\u003e\u003c/a\u003e feat: add github annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/aa59b6fa66bd3468ad681317de14189606a9c04e\"\u003e\u003ccode\u003eaa59b6f\u003c/code\u003e\u003c/a\u003e fix(deps): update ruff rust to v0.14.4 (patch) (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/87a6b87428641bc7cab3b22d00d788e28ed86ae9\"\u003e\u003ccode\u003e87a6b87\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b938ae73633b1a1f46e3888c9673b49d5e9dd60\"\u003e\u003ccode\u003e6b938ae\u003c/code\u003e\u003c/a\u003e chore(deps): update uv-version to v0.9.8 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/92c35bab5ad0a11d2becc31e4cdbe4413a746233\"\u003e\u003ccode\u003e92c35ba\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook woodruffw/zizmor-pre-commit to v1.16.3 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/a8be2902812426acaf00ff344dc93a48f30d48d7\"\u003e\u003ccode\u003ea8be290\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1332\"\u003e#1332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6abefd1237071ba0e8d3fc1c9e02a402ccde11f6\"\u003e\u003ccode\u003e6abefd1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mkdocs-material to v9.6.23 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b556861d72024d1f8b5f8c8ead9d1b48cef0f9e\"\u003e\u003ccode\u003e6b55686\u003c/code\u003e\u003c/a\u003e test: update all test dependencies (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jupytext` from 1.17.3 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mwouts/jupytext/releases\"\u003ejupytext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.18.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test \u003ccode\u003etest_check_source_is_newer_when_using_jupytext_sync\u003c/code\u003e to work reliably on systems with low filesystem timestamp resolution (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1460\"\u003e#1460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eChanged\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe now use \u003ccode\u003epixi\u003c/code\u003e to maintain the local Python environments used for developing and testing Jupytext.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.18.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAdded\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe documentation has a chapter on the \u003ca href=\"https://jupytext.readthedocs.io/en/latest/vs-code.html\"\u003eJupytext Sync\u003c/a\u003e extension for VS Code (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWe have added a new option \u003ccode\u003e--check-source-is-newer\u003c/code\u003e to the Jupytext CLI. Use this option if you want to make sure that the file passed as argument to Jupytext is the newest of all paired files, and/or newer than the destination file.\u003c/li\u003e\n\u003cli\u003eWe have added a section on \u003ca href=\"https://jupytext.readthedocs.io/en/latest/jupyter-collaboration.html\"\u003eJupyter Collaboration\u003c/a\u003e which also provides a very useful autoreload functionality (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/406\"\u003e#406\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePairing groups allow you to define different pairing configurations for specific subsets of notebooks. The \u003ccode\u003eformats\u003c/code\u003e configuration option now supports a list of format dictionaries for first-match pairing. Use \u003ccode\u003e[[formats]]\u003c/code\u003e sections in your TOML configuration to define multiple format specifications, where the first matching format is used. This allows applying different pairing rules to notebooks in different locations, such as generating documentation markdown files only for tutorial notebooks (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWe have added more tests to document the complex pairing formats, which also work on Windows (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1028\"\u003e#1028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePairing into nested folders was fixed on Windows (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1028\"\u003e#1028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJupytext is now tested with Python 3.14 (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe Jupytext CLI now detects if a file it has read or consulted has been modified while it was processing it. That can happen in the context of the \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=caenrigen.jupytext-sync\"\u003eJupytext Sync\u003c/a\u003e extension for VS Code (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1411\"\u003e#1411\u003c/a\u003e, [vscode-jupytext-sync-\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/12\"\u003e#12\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/caenrigen/vscode-jupytext-sync/issues/12\"\u003ecaenrigen/vscode-jupytext-sync#12\u003c/a\u003e)). When such a synchronous modification is detected, Jupytext now raises an error. Many thanks to \u003ca href=\"https://github.com/aarchiba\"\u003eAnne Archibald\u003c/a\u003e for reporting the issue and preparing an inspiring PR (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/pull/1417\"\u003e#1417\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWe don't import \u003ccode\u003enotebook\u003c/code\u003e when \u003ccode\u003ejupyter_server\u003c/code\u003e is available (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1436\"\u003e#1436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJupytext now supports more characters in the cell metadata keys, to improve compatibility with \u003ccode\u003ejupyterlab-slideshow\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1441\"\u003e#1441\u003c/a\u003e). Thanks to \u003ca href=\"https://github.com/nthiery\"\u003eNicolas Thierry\u003c/a\u003e for this fix.\u003c/li\u003e\n\u003cli\u003eThe function \u003ccode\u003efind_jupytext_configuration_file\u003c/code\u003e now works with relative directories (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1440\"\u003e#1440\u003c/a\u003e). This fix was contributed by \u003ca href=\"https://github.com/parmentelat\"\u003eThierry Parmentelat\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eWe have fixed a parsing error for R Markdown files (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWe have fixed a parsing error when the first cell of the notebook contains a YAML header that is not a dict (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1444\"\u003e#1444\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eChanged\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe have updated the pre-commit hooks. The code is now formatted using \u003ccode\u003eruff format\u003c/code\u003e, and updated for Python 3.9+ using \u003ca href=\"https://github.com/asottile/pyupgrade\"\u003ehttps://github.com/asottile/pyupgrade\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.18.0rc0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAdded\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe documentation has a chapter on the \u003ca href=\"https://jupytext.readthedocs.io/en/latest/vs-code.html\"\u003eJupytext Sync\u003c/a\u003e extension for VS Code (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWe have added a new option \u003ccode\u003e--check-source-is-newer\u003c/code\u003e to the Jupytext CLI. Use this option if you want to make sure that the file passed as argument to Jupytext is the newest of all paired files, and/or newer than the destination file.\u003c/li\u003e\n\u003cli\u003eWe have added a section on \u003ca href=\"https://jupytext.readthedocs.io/en/latest/jupyter-collaboration.html\"\u003eJupyter Collaboration\u003c/a\u003e which also provides a very useful autoreload functionality (\u003ca href=\"https://redirect.gi...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-statstruk/pull/106","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-statstruk/issues/106","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/106/packages"}],"issue_packages":[{"old_version":"5.0.1","new_version":"6.0.0","update_type":"major","path":null,"pr_created_at":"2026-03-10T02:26:43.000Z","version_change":"5.0.1 → 6.0.0","issue":{"uuid":"4048968457","node_id":"PR_kwDOKjagtM7JPsgV","number":322,"state":"closed","title":"bump: bump sphinx-click from 5.0.1 to 6.0.0","user":"dependabot[bot]","labels":["dependencies","python","stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-31T00:47:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-10T02:26:43.000Z","updated_at":"2026-05-31T00:47:54.000Z","time_to_close":7078862,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"bump","packages":[{"name":"sphinx-click","old_version":"5.0.1","new_version":"6.0.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":null,"ecosystem":"pip"},"body":"Bumps [sphinx-click](https://github.com/click-contrib/sphinx-click) from 5.0.1 to 6.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/7f29172b10d4dc251af414ae01e38c3b970686a1\"\u003e\u003ccode\u003e7f29172\u003c/code\u003e\u003c/a\u003e FIX Format string defaults correctly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/34470b694695c1f728ba9985a0e98e934d6c6ad0\"\u003e\u003ccode\u003e34470b6\u003c/code\u003e\u003c/a\u003e Remove errant prints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/f4ffef0ced79526ea4aaa6c97b52e1f17b7d6f12\"\u003e\u003ccode\u003ef4ffef0\u003c/code\u003e\u003c/a\u003e Drop support for click 7.x, Sphinx \u0026lt; 5.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/f0bf6e91c59e1b63289c4a43abc39e3ce5653c74\"\u003e\u003ccode\u003ef0bf6e9\u003c/code\u003e\u003c/a\u003e readthedocs: Use dirhtml builder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/0808867f139bdcb9048f89b706fe8b56a238152c\"\u003e\u003ccode\u003e0808867\u003c/code\u003e\u003c/a\u003e docs: Add discrete mocking section\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/8381e901c60a9f5867ec2dd7cc37b52467922cfe\"\u003e\u003ccode\u003e8381e90\u003c/code\u003e\u003c/a\u003e actions: Integrate tox-gh-actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/05b69cf96d2d3aa1e755700094660d2d063abfd0\"\u003e\u003ccode\u003e05b69cf\u003c/code\u003e\u003c/a\u003e Distinguish between click and asyncclick\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ac219509b8075aaf0baad400db8789e934d40b18\"\u003e\u003ccode\u003eac21950\u003c/code\u003e\u003c/a\u003e tests: Set maxDiff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/f099fe352f0c54ac332e49f9da5faddddf8c8f41\"\u003e\u003ccode\u003ef099fe3\u003c/code\u003e\u003c/a\u003e Skip test with click 7.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/82b5bcd23ab2756f3f0b3b07e3204deeb9b97284\"\u003e\u003ccode\u003e82b5bcd\u003c/code\u003e\u003c/a\u003e FIX If the \u003ccode\u003ehelp\u003c/code\u003e of an argument is \u003ccode\u003eNone\u003c/code\u003e, don't fail\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/5.0.1...6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx-click\u0026package-manager=pip\u0026previous-version=5.0.1\u0026new-version=6.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/xransum/valkyrie-tools/pull/322","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/xransum%2Fvalkyrie-tools/issues/322","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/322/packages"}},{"old_version":"5.0.1","new_version":"6.2.0","update_type":"major","path":"/docs","pr_created_at":"2026-03-09T23:16:19.000Z","version_change":"5.0.1 → 6.2.0","issue":{"uuid":"4048420979","node_id":"PR_kwDOKjagtM7JN-x8","number":296,"state":"open","title":"Bump sphinx-click from 5.0.1 to 6.2.0 in /docs","user":"dependabot[bot]","labels":["dependencies","python","stale"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-09T23:16:19.000Z","updated_at":"2026-03-24T00:22:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"sphinx-click","old_version":"5.0.1","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":"/docs","ecosystem":"pip"},"body":"Bumps [sphinx-click](https://github.com/click-contrib/sphinx-click) from 5.0.1 to 6.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/58473a8dac250898e1dc7dfac5622dc938264bb4\"\u003e\u003ccode\u003e58473a8\u003c/code\u003e\u003c/a\u003e Migrate to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/0d4f938d799a669658fc2b0ef3ede100d9abf5ab\"\u003e\u003ccode\u003e0d4f938\u003c/code\u003e\u003c/a\u003e Drop support for Python \u0026lt; 3.10, add Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/073353abfc0f6a72ca3fc33b7272072ec422cccb\"\u003e\u003ccode\u003e073353a\u003c/code\u003e\u003c/a\u003e Migrate setuptools, mypy configuration to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/83a5a17736958a9e4119ecb9ad271e3f1bf223fc\"\u003e\u003ccode\u003e83a5a17\u003c/code\u003e\u003c/a\u003e Prefer Group over MultiCommand\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/d9705e8a369211d60db0279fafb58f7f7fa079a7\"\u003e\u003ccode\u003ed9705e8\u003c/code\u003e\u003c/a\u003e Bump actions versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/5.0.1...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx-click\u0026package-manager=pip\u0026previous-version=5.0.1\u0026new-version=6.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/xransum/valkyrie-tools/pull/296","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/xransum%2Fvalkyrie-tools/issues/296","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/296/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-02-27T01:25:33.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3998550450","node_id":"PR_kwDOMQqnZM7GsrLm","number":103,"state":"closed","title":"chore: Bump the development-dependencies group with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-17T06:18:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-27T01:25:33.000Z","updated_at":"2026-04-17T06:18:57.000Z","time_to_close":4251203,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: Bump","group_name":"development-dependencies","update_count":5,"packages":[{"name":"pre-commit","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pylint","old_version":"4.0.3","new_version":"4.0.5","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"ruff","old_version":"0.14.5","new_version":"0.15.4","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the development-dependencies group with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.4.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pylint](https://github.com/pylint-dev/pylint) | `4.0.3` | `4.0.5` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.5` | `0.15.4` |\n\nUpdates `pre-commit` from 4.4.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.4.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pylint` from 4.0.3 to 4.0.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/88e1ab7545a4af4aea15c305a154c164a95ab842\"\u003e\u003ccode\u003e88e1ab7\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.5, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10860\"\u003e#10860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/d96d489a1743d32b6bfa53fc0f69a4333209a146\"\u003e\u003ccode\u003ed96d489\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Relax isort version constraint to allow isort 8 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/0b08ccb014c265700f244a885bdcbdfa3a03de46\"\u003e\u003ccode\u003e0b08ccb\u003c/code\u003e\u003c/a\u003e Fix dynamic color mapping for \u0026quot;fail-on\u0026quot; messages when using multiple reporter...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/154dba43276e8232a2e1cb8f90bfcc63886f3460\"\u003e\u003ccode\u003e154dba4\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix FP for \u003ccode\u003einvalid-name\u003c/code\u003e with \u003ccode\u003etyping.Final\u003c/code\u003e on...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/7b73bfdedf275935b9c5b43a6aeda5cc648b4847\"\u003e\u003ccode\u003e7b73bfd\u003c/code\u003e\u003c/a\u003e Disable unspecified-encoding for py-version above Python 3.15 (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/10800\"\u003e#10800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/4cc98be8b7786dbc6692493fe9cedb8585af5518\"\u003e\u003ccode\u003e4cc98be\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix setting options for import order checker (\u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f0d30a27b510d69f846e3aaa0054cf0a1412923c\"\u003e\u003ccode\u003ef0d30a2\u003c/code\u003e\u003c/a\u003e Sync astroid version with requirements file again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/38bdf024648724e6aea017e62d3b57cb44097ec3\"\u003e\u003ccode\u003e38bdf02\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Fix \u003ccode\u003elogging-unsupported-format\u003c/code\u003e when logging ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/f08c33ae3e691eed868e49c0d15270dc6e6a0d6c\"\u003e\u003ccode\u003ef08c33a\u003c/code\u003e\u003c/a\u003e [Backport maintenance/4.0.x] Properly detect \u003ccode\u003eself.fail()\u003c/code\u003e as a terminating...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/pylint/commit/e16f942166511d6fb4427e503a734152fae0c4fe\"\u003e\u003ccode\u003ee16f942\u003c/code\u003e\u003c/a\u003e Bump pylint to 4.0.4, update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/pylint/compare/v4.0.3...v4.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.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.14.5 to 0.15.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.4\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-26.\u003c/p\u003e\n\u003cp\u003eThis is a follow-up release to 0.15.3 that resolves a panic when the new rule \u003ccode\u003ePLR1712\u003c/code\u003e was enabled with any rule that analyzes definitions, such as many of the \u003ccode\u003eANN\u003c/code\u003e or \u003ccode\u003eD\u003c/code\u003e rules.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on access to definitions after analyzing definitions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23588\"\u003e#23588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Suppress false positive in \u003ccode\u003eF821\u003c/code\u003e for names used before \u003ccode\u003edel\u003c/code\u003e in stub files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23550\"\u003e#23550\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify first-party import detection in Ruff (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23591\"\u003e#23591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003eimport-heading\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23568\"\u003e#23568\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/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\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/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GeObts\"\u003e\u003ccode\u003e@​GeObts\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.4\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.4\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip\"\u003eruff-x86_64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz\"\u003eruff-aarch64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz\"\u003eruff-i686-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz\"\u003eruff-powerpc64-unknown-linux-gnu.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ePPC64 Linux\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-26.\u003c/p\u003e\n\u003cp\u003eThis is a follow-up release to 0.15.3 that resolves a panic when the new rule \u003ccode\u003ePLR1712\u003c/code\u003e was enabled with any rule that analyzes definitions, such as many of the \u003ccode\u003eANN\u003c/code\u003e or \u003ccode\u003eD\u003c/code\u003e rules.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on access to definitions after analyzing definitions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23588\"\u003e#23588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Suppress false positive in \u003ccode\u003eF821\u003c/code\u003e for names used before \u003ccode\u003edel\u003c/code\u003e in stub files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23550\"\u003e#23550\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify first-party import detection in Ruff (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23591\"\u003e#23591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003eimport-heading\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23568\"\u003e#23568\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/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\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/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GeObts\"\u003e\u003ccode\u003e@​GeObts\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.3\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop explicit support for \u003ccode\u003e.qmd\u003c/code\u003e file extension (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23572\"\u003e#23572\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eThis can now be enabled instead by setting the \u003ca href=\"https://docs.astral.sh/ruff/settings/#extension\"\u003e\u003ccode\u003eextension\u003c/code\u003e\u003c/a\u003e option:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e# ruff.toml\nextension = { qmd = \u0026quot;markdown\u0026quot; }\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff]\nextension = { qmd = \u0026quot;markdown\u0026quot; }\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eInclude configured extensions in file discovery (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23400\"\u003e#23400\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Allow suspicious imports in \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ccode\u003eS401\u003c/code\u003e-\u003ccode\u003eS415\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23441\"\u003e#23441\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Allow \u003ccode\u003eB901\u003c/code\u003e in pytest hook wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21931\"\u003e#21931\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-import-conventions\u003c/code\u003e] Add missing conventions from upstream (\u003ccode\u003eICN001\u003c/code\u003e, \u003ccode\u003eICN002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21373\"\u003e#21373\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f14edd8661e2803254f89265548c7487f47a09f6\"\u003e\u003ccode\u003ef14edd8\u003c/code\u003e\u003c/a\u003e Bump 0.15.4 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23595\"\u003e#23595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/fd09d370076ab585444fd39f0fee79bf29280b68\"\u003e\u003ccode\u003efd09d37\u003c/code\u003e\u003c/a\u003e Fix panic on access to definitions after analyzing definitions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23588\"\u003e#23588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/81d655fadce087b792e524ed1964e9bcc31b73cd\"\u003e\u003ccode\u003e81d655f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyflakes\u003c/code\u003e] suppress false positive in \u003ccode\u003eF821\u003c/code\u003e for names used before \u003ccode\u003edel\u003c/code\u003e in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/625b4f5a672d1baaa6f25e0999ca428f3f2522f1\"\u003e\u003ccode\u003e625b4f5\u003c/code\u003e\u003c/a\u003e [ruff] docs: Clarify first-party import detection in Ruff (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23591\"\u003e#23591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/60facfa0bc02689637e25237f0df5abfc2f27054\"\u003e\u003ccode\u003e60facfa\u003c/code\u003e\u003c/a\u003e one word typo fix in a \u003ccode\u003ewhile_loop.md\u003c/code\u003e test case (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23589\"\u003e#23589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/fbb9fa75cc1915973a739da0ec469094176bfdc6\"\u003e\u003ccode\u003efbb9fa7\u003c/code\u003e\u003c/a\u003e docs: fix incorrect import-heading example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23568\"\u003e#23568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5bc49a941279c9100ff834edae1cb63053aeec93\"\u003e\u003ccode\u003e5bc49a9\u003c/code\u003e\u003c/a\u003e Increase the ruleset size to 16 bits (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23586\"\u003e#23586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a62ba8c6e2bac0b899d90fd30a1b26c07aac44bb\"\u003e\u003ccode\u003ea62ba8c\u003c/code\u003e\u003c/a\u003e [ty] Fix overloaded callable assignability for unary Callable targets (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23277\"\u003e#23277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e5f2f36a3f49b45fd7506d42b12c495c2517e936\"\u003e\u003ccode\u003ee5f2f36\u003c/code\u003e\u003c/a\u003e Bump 0.15.3 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23585\"\u003e#23585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0e19fc9a61477e71abc4eb76f05a129b6b9ab873\"\u003e\u003ccode\u003e0e19fc9\u003c/code\u003e\u003c/a\u003e [ty] defer calculating conjunctions in narrowing constraints (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23552\"\u003e#23552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.5...0.15.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.","html_url":"https://github.com/MrShark/coc-generator/pull/103","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrShark%2Fcoc-generator/issues/103","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/103/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-02-09T20:20:04.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3917963992","node_id":"PR_kwDOJmW1lc7CkIn-","number":132,"state":"closed","title":"chore(deps): bump the bowtie-dependencies group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-16T17:57:18.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-09T20:20:04.000Z","updated_at":"2026-02-16T17:57:20.000Z","time_to_close":596234,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"bowtie-dependencies","update_count":16,"packages":[{"name":"aiodocker","old_version":"0.24.0","new_version":"0.25.0","repository_url":"https://github.com/aio-libs/aiodocker"},{"name":"diagnostic","old_version":"2.1.0","new_version":"3.0.0","repository_url":"https://github.com/pradyunsg/diagnostic"},{"name":"jsonschema","old_version":"4.25.1","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.2","repository_url":"https://github.com/Textualize/rich"},{"name":"rich-click","old_version":"1.9.4","new_version":"1.9.7","repository_url":"https://github.com/ewels/rich-click"},{"name":"rpds-py","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"url-py","old_version":"0.18.0","new_version":"0.19.0","repository_url":"https://github.com/crate-py/url"},{"name":"hypothesis","old_version":"6.148.2","new_version":"6.151.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"sphinx-substitution-extensions","old_version":"2025.1.2","new_version":"2026.1.12","repository_url":"https://github.com/adamtheturtle/sphinx-substitution-extensions"},{"name":"sphinxcontrib-spelling","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the bowtie-dependencies group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiodocker](https://github.com/aio-libs/aiodocker) | `0.24.0` | `0.25.0` |\n| [diagnostic](https://github.com/pradyunsg/diagnostic) | `2.1.0` | `3.0.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.2` |\n| [rich-click](https://github.com/ewels/rich-click) | `1.9.4` | `1.9.7` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.29.0` | `0.30.0` |\n| [url-py](https://github.com/crate-py/url) | `0.18.0` | `0.19.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.148.2` | `6.151.4` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.1.0` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [sphinx-substitution-extensions](https://github.com/adamtheturtle/sphinx-substitution-extensions) | `2025.1.2` | `2026.1.12` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.1` | `8.0.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n\n\nUpdates `aiodocker` from 0.24.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiodocker/releases\"\u003eaiodocker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 support, updating dependencies such as aiohttp (minimum 3.8 to 3.10) and async-timeout (minimum to 5.0) for stdlib TaskGroup and timeout compatibility in Python 3.11+ (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e**kwargs\u003c/code\u003e with explicit parameters in \u003ccode\u003eDockerContainer.{stop,restart,kill,delete}()\u003c/code\u003e methods, accepting \u003ccode\u003et\u003c/code\u003e for server-side stop timeout and \u003ccode\u003etimeout\u003c/code\u003e for client-side request timeouts for consistency with other methods covered in the previous PRs \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/990\"\u003e#990\u003c/a\u003e; since this is a BREAKING CHANGE for those who have used the \u003ccode\u003etimeout\u003c/code\u003e argument for the \u003ccode\u003eDockerContainer.restart()\u003c/code\u003e method calls, the users should replace it with \u003ccode\u003et\u003c/code\u003e to keep the intended semantics (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue authenticating against private registries where the \u003ccode\u003eX-Registry-Auth\u003c/code\u003e header would require URL-safe substitutions. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Docker context endpoints with TLS, reading configuration from \u003ccode\u003e~/.docker/contexts/\u003c/code\u003e and respecting \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e environment variable and \u003ccode\u003eSkipTLSVerify\u003c/code\u003e option. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SSH protocol support for secure connections to remote Docker instances via \u0026quot;ssh://\u0026quot; URLs with mandatory host key verification (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce the client-level \u003ccode\u003etimeout\u003c/code\u003e configuration which becomes the base timeout configuration while still allowing legacy individual per-API timeouts and merging it into the base timeout.  Now setting individual float (total) timeout per-API call is HIGHLY DISCOURAGED in favor of composable timeouts via stdlib's \u003ccode\u003easyncio.timeout()\u003c/code\u003e async context manager. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the CI workflows to expand the test matrix for aiohttp 3.10/3.13 releases and let tests use the prebuilt artifact to ensure consistency with the release (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIsolate the docker instance for swarm and service tests via a docker-in-docker compose stack to avoid affecting the user environment (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply the default cooldown period (7 days) to the dependabot configuration (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/984\"\u003e#984\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/aio-libs/aiodocker/blob/main/CHANGES.rst\"\u003eaiodocker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.25.0 (2025-12-20)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 support, updating dependencies such as aiohttp (minimum 3.8 to 3.10) and async-timeout (minimum to 5.0) for stdlib TaskGroup and timeout compatibility in Python 3.11+ (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e**kwargs\u003c/code\u003e with explicit parameters in \u003ccode\u003eDockerContainer.{stop,restart,kill,delete}()\u003c/code\u003e methods, accepting \u003ccode\u003et\u003c/code\u003e for server-side stop timeout and \u003ccode\u003etimeout\u003c/code\u003e for client-side request timeouts for consistency with other methods covered in the previous PRs \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/990\"\u003e#990\u003c/a\u003e; since this is a BREAKING CHANGE for those who have used the \u003ccode\u003etimeout\u003c/code\u003e argument for the \u003ccode\u003eDockerContainer.restart()\u003c/code\u003e method calls, the users should replace it with \u003ccode\u003et\u003c/code\u003e to keep the intended semantics (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue authenticating against private registries where the \u003ccode\u003eX-Registry-Auth\u003c/code\u003e header would require URL-safe substitutions. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Docker context endpoints with TLS, reading configuration from \u003ccode\u003e~/.docker/contexts/\u003c/code\u003e and respecting \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e environment variable and \u003ccode\u003eSkipTLSVerify\u003c/code\u003e option. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SSH protocol support for secure connections to remote Docker instances via \u0026quot;ssh://\u0026quot; URLs with mandatory host key verification (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce the client-level \u003ccode\u003etimeout\u003c/code\u003e configuration which becomes the base timeout configuration while still allowing legacy individual per-API timeouts and merging it into the base timeout.  Now setting individual float (total) timeout per-API call is HIGHLY DISCOURAGED in favor of composable timeouts via stdlib's \u003ccode\u003easyncio.timeout()\u003c/code\u003e async context manager. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the CI workflows to expand the test matrix for aiohttp 3.10/3.13 releases and let tests use the prebuilt artifact to ensure consistency with the release (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIsolate the docker instance for swarm and service tests via a docker-in-docker compose stack to avoid affecting the user environment (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply the default cooldown period (7 days) to the dependabot configuration (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/984\"\u003e#984\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/aio-libs/aiodocker/commit/53cb28682c2e892c4631b6fd3cff3e515e0c791b\"\u003e\u003ccode\u003e53cb286\u003c/code\u003e\u003c/a\u003e ci: Update sigstore action to avoid using deprecated artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/cf67541d5a8adfc6787cc7a8a239ca8099dee3f5\"\u003e\u003ccode\u003ecf67541\u003c/code\u003e\u003c/a\u003e Release v0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/872a9c24ee9d034572ebda1d6d1dc1a93ca877be\"\u003e\u003ccode\u003e872a9c2\u003c/code\u003e\u003c/a\u003e Add missing consistent client timeout in DockerContainer.commit() (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/992\"\u003e#992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/b2c0cd712e3b9891f183e53ce22adac49fdcd1a7\"\u003e\u003ccode\u003eb2c0cd7\u003c/code\u003e\u003c/a\u003e Even more consistent timeouts for all long-running APIs (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/972d3e1d26f7fc8fc148f6084f3febcc01475b13\"\u003e\u003ccode\u003e972d3e1\u003c/code\u003e\u003c/a\u003e Make per-call and contextual timeout handling consistent across all long-runn...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/d2718327a3203a74e7453f6551b0680d7a834d13\"\u003e\u003ccode\u003ed271832\u003c/code\u003e\u003c/a\u003e Bump Ruff version in pre-commit-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/c2ddcfd6b5bd7e2ae4e69d6fd9a0973165e30370\"\u003e\u003ccode\u003ec2ddcfd\u003c/code\u003e\u003c/a\u003e Bump the ci group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/989\"\u003e#989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/ede0268ccb12564a11afcd302bee7ff757f03950\"\u003e\u003ccode\u003eede0268\u003c/code\u003e\u003c/a\u003e feat: add SSH support for remote Docker connections (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/b5f93e01079f8fd72261d5d5529a327a9bb8fb2b\"\u003e\u003ccode\u003eb5f93e0\u003c/code\u003e\u003c/a\u003e feat: Add context arg and docs for config precedence (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/988\"\u003e#988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/e992db2fe2b87ff75733d46e99605ad8a173a580\"\u003e\u003ccode\u003ee992db2\u003c/code\u003e\u003c/a\u003e Add support for Docker context endpoints (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiodocker/compare/v0.24.0...v0.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `diagnostic` from 2.1.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/diagnostic/releases\"\u003ediagnostic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8, 3.9.\u003c/li\u003e\n\u003cli\u003eAdd explicitly tested support for Python 3.12, 3.13 and 3.14.\u003c/li\u003e\n\u003cli\u003eUse the standard library \u003ccode\u003eargparse\u003c/code\u003e for boolean options.\u003c/li\u003e\n\u003cli\u003eModernise the code and tooling used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.0\"\u003ehttps://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.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/pradyunsg/diagnostic/blob/main/docs/changelog.md\"\u003ediagnostic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.0.0 (2025-12-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8, 3.9.\u003c/li\u003e\n\u003cli\u003eAdd explicitly tested support for Python 3.12, 3.13 and 3.14.\u003c/li\u003e\n\u003cli\u003eUse the standard library \u003ccode\u003eargparse\u003c/code\u003e for boolean options.\u003c/li\u003e\n\u003cli\u003eModernise the code and tooling used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/diagnostic/commit/56439f60a59cff430fd1316fc228a8d7ea6dce1c\"\u003e\u003ccode\u003e56439f6\u003c/code\u003e\u003c/a\u003e Release 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/e44dd86515456096ec3a5daa61afc79275f468b4\"\u003e\u003ccode\u003ee44dd86\u003c/code\u003e\u003c/a\u003e Drop manual provenance and build pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/36a5afd0d8c07fc103bde9d1f4e9e5218f2561a7\"\u003e\u003ccode\u003e36a5afd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/45\"\u003e#45\u003c/a\u003e from pradyunsg/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/37f95c77071a8ca27369da56e21ee9b88e82023a\"\u003e\u003ccode\u003e37f95c7\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 6 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/da2208610603e7203fc6b42e0cb6747be1ee17ea\"\u003e\u003ccode\u003eda22086\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/43\"\u003e#43\u003c/a\u003e from pradyunsg/argparse-builtin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/fa629882117dd1741c31ad36662b1103eea447f8\"\u003e\u003ccode\u003efa62988\u003c/code\u003e\u003c/a\u003e Use the stdlib implementation for boolean options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/c231f585393747dfe8bfd9c16db24ac6d2d4c944\"\u003e\u003ccode\u003ec231f58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/42\"\u003e#42\u003c/a\u003e from pradyunsg/modernise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/5f45e5d8284ec00daf1462215b8e00a405b056cb\"\u003e\u003ccode\u003e5f45e5d\u003c/code\u003e\u003c/a\u003e Add and test support for Python 3.12-3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/ff5ad05a80d78d3cc7cb478896fe1f00b005d106\"\u003e\u003ccode\u003eff5ad05\u003c/code\u003e\u003c/a\u003e Fix pyright deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/679cc98ff965b43b970259625dcc3a1c88f165c4\"\u003e\u003ccode\u003e679cc98\u003c/code\u003e\u003c/a\u003e Pacify docutils \u0026lt;-\u0026gt; pyright errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.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.1 to 4.26.0\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.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1400\"\u003epython-jsonschema/jsonschema#1400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1405\"\u003epython-jsonschema/jsonschema#1405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.5.0 to 6.6.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/python-jsonschema/jsonschema/pull/1406\"\u003epython-jsonschema/jsonschema#1406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1407\"\u003epython-jsonschema/jsonschema#1407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1413\"\u003epython-jsonschema/jsonschema#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.0 to 6.6.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1412\"\u003epython-jsonschema/jsonschema#1412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.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/python-jsonschema/jsonschema/pull/1410\"\u003epython-jsonschema/jsonschema#1410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.2 to 2.3.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/python-jsonschema/jsonschema/pull/1409\"\u003epython-jsonschema/jsonschema#1409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1411\"\u003epython-jsonschema/jsonschema#1411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidators: avoid \u003ccode\u003eurllib.request\u003c/code\u003e at import-time by \u003ca href=\"https://github.com/gudnimg\"\u003e\u003ccode\u003e@​gudnimg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1416\"\u003epython-jsonschema/jsonschema#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.1 to 6.8.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/python-jsonschema/jsonschema/pull/1417\"\u003epython-jsonschema/jsonschema#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.3 to 2.3.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1418\"\u003epython-jsonschema/jsonschema#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1415\"\u003epython-jsonschema/jsonschema#1415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.4 to 2.4.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1419\"\u003epython-jsonschema/jsonschema#1419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1420\"\u003epython-jsonschema/jsonschema#1420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.8.0 to 7.1.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/python-jsonschema/jsonschema/pull/1421\"\u003epython-jsonschema/jsonschema#1421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1424\"\u003epython-jsonschema/jsonschema#1424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.0 to 7.1.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1423\"\u003epython-jsonschema/jsonschema#1423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1425\"\u003epython-jsonschema/jsonschema#1425\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1429\"\u003epython-jsonschema/jsonschema#1429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1431\"\u003epython-jsonschema/jsonschema#1431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.1 to 2.4.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/python-jsonschema/jsonschema/pull/1432\"\u003epython-jsonschema/jsonschema#1432\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.1 to 7.1.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/python-jsonschema/jsonschema/pull/1430\"\u003epython-jsonschema/jsonschema#1430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1434\"\u003epython-jsonschema/jsonschema#1434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.2 to 7.1.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1435\"\u003epython-jsonschema/jsonschema#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1436\"\u003epython-jsonschema/jsonschema#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1437\"\u003epython-jsonschema/jsonschema#1437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.2 to 2.5.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/python-jsonschema/jsonschema/pull/1438\"\u003epython-jsonschema/jsonschema#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1439\"\u003epython-jsonschema/jsonschema#1439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument \u003ccode\u003euuid\u003c/code\u003e format by \u003ca href=\"https://github.com/sim642\"\u003e\u003ccode\u003e@​sim642\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1440\"\u003epython-jsonschema/jsonschema#1440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1441\"\u003epython-jsonschema/jsonschema#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.4 to 7.1.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1442\"\u003epython-jsonschema/jsonschema#1442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1443\"\u003epython-jsonschema/jsonschema#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/gudnimg\"\u003e\u003ccode\u003e@​gudnimg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1416\"\u003epython-jsonschema/jsonschema#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sim642\"\u003e\u003ccode\u003e@​sim642\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1440\"\u003epython-jsonschema/jsonschema#1440\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.1...v4.26.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.25.1...v4.26.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDecrease import time by delaying importing of \u003ccode\u003eurllib.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1416\"\u003e#1416\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/a7277432b0f7bcd0551f6e589d30457017125df4\"\u003e\u003ccode\u003ea727743\u003c/code\u003e\u003c/a\u003e Add a changelog entry for 4.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6d28c13efbbd6cf136143fdbb18f79d4476091f6\"\u003e\u003ccode\u003e6d28c13\u003c/code\u003e\u003c/a\u003e Update the lockfile.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/739499edc33c007ff62180c9fef61dbf5480bb7b\"\u003e\u003ccode\u003e739499e\u003c/code\u003e\u003c/a\u003e Update pre-commit hooks.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/cb2d77980713577f65cc7e7c7c115932206393fd\"\u003e\u003ccode\u003ecb2d779\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1443\"\u003e#1443\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/e6bbbb7c5bcdb32a654572d17bfce264aefd1f9d\"\u003e\u003ccode\u003ee6bbbb7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/d56037a88faac4881214c6674a785b4abd428617\"\u003e\u003ccode\u003ed56037a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1442\"\u003e#1442\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/e54ce13fb590a5c17fb702431598a382de6e68f9\"\u003e\u003ccode\u003ee54ce13\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 7.1.4 to 7.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1f7c9fbd01d9c2f8ddd98065324062f7e122dbe1\"\u003e\u003ccode\u003e1f7c9fb\u003c/code\u003e\u003c/a\u003e Partially update docs requirements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/241aec982bc8c867f276779faf20d49d9774532f\"\u003e\u003ccode\u003e241aec9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1441\"\u003e#1441\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/2818efb4fa446ed4fa7815b4e09a7b4b7c633852\"\u003e\u003ccode\u003e2818efb\u003c/code\u003e\u003c/a\u003e Apache-2.0 -\u0026gt; nongpl\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.25.1...v4.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.2.0 to 14.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe ZWJy release\u003c/h2\u003e\n\u003cp\u003eA fix for \u003ccode\u003ecell_len\u003c/code\u003e edge cases\u003c/p\u003e\n\u003ch2\u003e[14.3.2] - 2026-02-01\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed solo ZWJ crash \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3953\"\u003eTextualize/rich#3953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed control codes reporting width of 1 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3953\"\u003eTextualize/rich#3953\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Nerdy Fix release\u003c/h2\u003e\n\u003cp\u003eFixed issue with characters outside of unicode range reporting 0 cell size\u003c/p\u003e\n\u003ch2\u003e[14.3.1] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characters out of unicode range reporting a cell size if 0 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3944\"\u003eTextualize/rich#3944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe more emojis release\u003c/h2\u003e\n\u003cp\u003eRich now has support for multi-codepoint emojis. There have also been some Markdown improvements, and a number of fixes. See the release notes below for details.\u003c/p\u003e\n\u003ch2\u003e[14.3.0] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIPython now respects when a \u003ccode\u003eConsole\u003c/code\u003e instance is passed to \u003ccode\u003epretty.install\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3915\"\u003eTextualize/rich#3915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extraneous blank line on non-interactive disabled \u003ccode\u003eProgress\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3905\"\u003eTextualize/rich#3905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extra padding on first cell in columns \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3935\"\u003eTextualize/rich#3935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed trailing whitespace removed when soft_wrap=True \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3937\"\u003eTextualize/rich#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed style new-lines when soft_wrap = True and a print style is set \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for some multi-codepopint glyphs (will fix alignment issues for these characters) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eUNICODE_VERSION\u003c/code\u003e environment variable \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elast_render_height\u003c/code\u003e property to LiveRender \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose locals_max_depth and locals_overflow in traceback.install \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3906/\"\u003eTextualize/rich#3906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSegment.split_lines_terminator\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecells.cell_len\u003c/code\u003e now has a \u003ccode\u003eunicode_version\u003c/code\u003e parameter (that you probably should never change) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLive will not write a new line if there was nothing rendered \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown headers \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown tables, added \u003ccode\u003emarkdown.table.header\u003c/code\u003e and \u003ccode\u003emarkdown.table.border\u003c/code\u003e styles \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown rules \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.3.2] - 2026-02-01\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed solo ZWJ crash \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3953\"\u003eTextualize/rich#3953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed control codes reporting width of 1 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3953\"\u003eTextualize/rich#3953\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.1] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characters out of unicode range reporting a cell size if 0 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3944\"\u003eTextualize/rich#3944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.0] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIPython now respects when a \u003ccode\u003eConsole\u003c/code\u003e instance is passed to \u003ccode\u003epretty.install\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3915\"\u003eTextualize/rich#3915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extraneous blank line on non-interactive disabled \u003ccode\u003eProgress\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3905\"\u003eTextualize/rich#3905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extra padding on first cell in columns \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3935\"\u003eTextualize/rich#3935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed trailing whitespace removed when soft_wrap=True \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3937\"\u003eTextualize/rich#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed style new-lines when soft_wrap = True and a print style is set \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for some multi-codepopint glyphs (will fix alignment issues for these characters) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eUNICODE_VERSION\u003c/code\u003e environment variable \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elast_render_height\u003c/code\u003e property to LiveRender \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose locals_max_depth and locals_overflow in traceback.install \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3906/\"\u003eTextualize/rich#3906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSegment.split_lines_terminator\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecells.cell_len\u003c/code\u003e now has a \u003ccode\u003eunicode_version\u003c/code\u003e parameter (that you probably should never change) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLive will not write a new line if there was nothing rendered \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown headers \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown tables, added \u003ccode\u003emarkdown.table.header\u003c/code\u003e and \u003ccode\u003emarkdown.table.border\u003c/code\u003e styles \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown rules \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/0752ff047295131d98f24284e1d949300cd6f4c1\"\u003e\u003ccode\u003e0752ff0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3953\"\u003e#3953\u003c/a\u003e from Textualize/zwj-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/54ae0cfbb8d43ccc8f56bf57019b9a22c252eefa\"\u003e\u003ccode\u003e54ae0cf\u003c/code\u003e\u003c/a\u003e simplify\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/07edb85f7e09ae76f0a0c9ac4c2059803ce8eb9a\"\u003e\u003ccode\u003e07edb85\u003c/code\u003e\u003c/a\u003e refine\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/31930ddc842d9e1cd224327d5f6c22eff4a87f82\"\u003e\u003ccode\u003e31930dd\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/454fcfc92c66556f9538d420b5bd3ba95b1f57b7\"\u003e\u003ccode\u003e454fcfc\u003c/code\u003e\u003c/a\u003e stupid comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/13f87a4007f629c00b491286034751d53ae9d63c\"\u003e\u003ccode\u003e13f87a4\u003c/code\u003e\u003c/a\u003e Fix ZWJ and edge cases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/1d402e0c59f8765e420a5a4440eb2fca7465d1ae\"\u003e\u003ccode\u003e1d402e0\u003c/code\u003e\u003c/a\u003e fix dates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/f2a1c3b8a8f7edc41b1954cc3fb66bae32293a5e\"\u003e\u003ccode\u003ef2a1c3b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3944\"\u003e#3944\u003c/a\u003e from Textualize/nerf-fonts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/2e5a5dad304b59d75aa4b4ed6cae031693e3615e\"\u003e\u003ccode\u003e2e5a5da\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/73ee8232e7ea72a90130ccf67d8ffefd4122e9f4\"\u003e\u003ccode\u003e73ee823\u003c/code\u003e\u003c/a\u003e fix fonts\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.2.0...v14.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich-click` from 1.9.4 to 1.9.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ewels/rich-click/releases\"\u003erich-click's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eclick_version\u003c/code\u003e check when build metadata is included. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/324\"\u003e#324\u003c/a\u003e] (\u003ca href=\"https://github.com/ccoulombe\"\u003e\u003ccode\u003e@​ccoulombe\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.9.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix minor Typer incompatibilities, most notably default panel placements.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edefault_panels_first\u003c/code\u003e config option which places default panels above user-defined panels.\u003c/li\u003e\n\u003cli\u003eFix to \u003ccode\u003e.pyi\u003c/code\u003e file [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/319\"\u003e#319\u003c/a\u003e] (\u003ca href=\"https://github.com/nemowang2003\"\u003e\u003ccode\u003e@​nemowang2003\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.9.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.9.5.dev0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\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/ewels/rich-click/blob/main/CHANGELOG.md\"\u003erich-click's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.7 (2026-01-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eclick_version\u003c/code\u003e check when build metadata is included. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/324\"\u003e#324\u003c/a\u003e] (\u003ca href=\"https://github.com/ccoulombe\"\u003e\u003ccode\u003e@​ccoulombe\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.9.6 (2026-01-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix minor Typer incompatibilities, most notably default panel placements.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edefault_panels_first\u003c/code\u003e config option which places default panels above user-defined panels.\u003c/li\u003e\n\u003cli\u003eFix to \u003ccode\u003e.pyi\u003c/code\u003e file [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/319\"\u003e#319\u003c/a\u003e] (\u003ca href=\"https://github.com/nemowang2003\"\u003e\u003ccode\u003e@​nemowang2003\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.9.5 (2025-12-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\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/ewels/rich-click/commit/7f554a3f048917f17ea5089ae7332c46951136f0\"\u003e\u003ccode\u003e7f554a3\u003c/code\u003e\u003c/a\u003e version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/8fc129c15def897c000280ee57a2e88c0b0b4e5b\"\u003e\u003ccode\u003e8fc129c\u003c/code\u003e\u003c/a\u003e click_version fix (\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/324\"\u003e#324\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/0eed6b20bb91f4123d445c21e840fba217f7b4f7\"\u003e\u003ccode\u003e0eed6b2\u003c/code\u003e\u003c/a\u003e Generate new screengrabs with rich-codex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/7f2bb5ab52cdb289459f324fb603c177915a7da3\"\u003e\u003ccode\u003e7f2bb5a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/323\"\u003e#323\u003c/a\u003e from dwreeves/fix-rich-14-3-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/e9c8b133bc100a9bf03191cbbcc497d39d0af6b3\"\u003e\u003ccode\u003ee9c8b13\u003c/code\u003e\u003c/a\u003e Fix failing unit-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/5cb336fd257bc9670fba103a44185f75eb07b8de\"\u003e\u003ccode\u003e5cb336f\u003c/code\u003e\u003c/a\u003e Generate new screengrabs with rich-codex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/9096d02dbeda5c24d4bf5c363077b03111960a1c\"\u003e\u003ccode\u003e9096d02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/320\"\u003e#320\u003c/a\u003e from dwreeves/minor-typer-compat-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/f5e4b108fa9965cf14fc745d289538719d9f5891\"\u003e\u003ccode\u003ef5e4b10\u003c/code\u003e\u003c/a\u003e Fix Typer incompatibilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/cf09124fd4fae9fea061c1af0c3ca49eb45f3398\"\u003e\u003ccode\u003ecf09124\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/319\"\u003e#319\u003c/a\u003e from nemowang2003/fix-pyi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/d97ac2d49280ce973c15b945c7403d094a1e9e46\"\u003e\u003ccode\u003ed97ac2d\u003c/code\u003e\u003c/a\u003e Fix incorrect type hint in rich_command.pyi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ewels/rich-click/compare/v1.9.4...v1.9.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rpds-py` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/rpds/releases\"\u003erpds-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.30.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/202\"\u003ecrate-py/rpds#202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/203\"\u003ecrate-py/rpds#203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to PyO3 0.27.2 by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/204\"\u003ecrate-py/rpds#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.29.0...v0.30.0\"\u003ehttps://github.com/crate-py/rpds/compare/v0.29.0...v0.30.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/crate-py/rpds/commit/c38c9795cc6a1b4d95bd1863e7164f889a638adf\"\u003e\u003ccode\u003ec38c979\u003c/code\u003e\u003c/a\u003e Tag a release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/09c753822ffc4aac239f590d0aa33dbfcf6e6658\"\u003e\u003ccode\u003e09c7538\u003c/code\u003e\u003c/a\u003e Update the pre-commit link for zizmor.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/086997f24d385064e5b45656996462e45c9b9806\"\u003e\u003ccode\u003e086997f\u003c/code\u003e\u003c/a\u003e Remove an unneeded section of the pyproject.toml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/76909337a92fbd0e782137b7296ef2a620d17706\"\u003e\u003ccode\u003e7690933\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/204\"\u003e#204\u003c/a\u003e from edgarrmondragon/pyo3-0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/84f9bd13822be3d2d70c04391cb9bcfa7f6d565f\"\u003e\u003ccode\u003e84f9bd1\u003c/code\u003e\u003c/a\u003e Update to PyO3 0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5cb6bc4bbdad1fe12bf9b471cbe0b6e691846a6d\"\u003e\u003ccode\u003e5cb6bc4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/203\"\u003e#203\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/677a6dbb757e0551edade218d24ac731709c59f4\"\u003e\u003ccode\u003e677a6db\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5f1fa205f836761a15c71df017443e7860ce2be6\"\u003e\u003ccode\u003e5f1fa20\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/202\"\u003e#202\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/6657a51e8a3ea2559d5b168ef69a2e44f47353ce\"\u003e\u003ccode\u003e6657a51\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.29.0...v0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `url-py` from 0.18.0 to 0.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/url/releases\"\u003eurl-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.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/crate-py/url/pull/138\"\u003ecrate-py/url#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.29.11 to 3.30.1 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/crate-py/url/pull/139\"\u003ecrate-py/url#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.2 to 2.3.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/crate-py/url/pull/140\"\u003ecrate-py/url#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/141\"\u003ecrate-py/url#141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.0 to 6.6.1 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/crate-py/url/pull/142\"\u003ecrate-py/url#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/143\"\u003ecrate-py/url#143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.1 to 6.7.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/145\"\u003ecrate-py/url#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.30.1 to 3.30.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/crate-py/url/pull/144\"\u003ecrate-py/url#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/146\"\u003ecrate-py/url#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/147\"\u003ecrate-py/url#147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/149\"\u003ecrate-py/url#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/153\"\u003ecrate-py/url#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.3 to 2.4.1 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/crate-py/url/pull/154\"\u003ecrate-py/url#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.7.0 to 7.1.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/crate-py/url/pull/156\"\u003ecrate-py/url#156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.0 to 7.1.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/crate-py/url/pull/165\"\u003ecrate-py/url#165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/162\"\u003ecrate-py/url#162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/161\"\u003ecrate-py/url#161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.26.0 to 0.27.1 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/crate-py/url/pull/163\"\u003ecrate-py/url#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/167\"\u003ecrate-py/url#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/169\"\u003ecrate-py/url#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.1 to 2.4.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/crate-py/url/pull/170\"\u003ecrate-py/url#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/171\"\u003ecrate-py/url#171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 4.31.0 to 4.31.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/crate-py/url/pull/168\"\u003ecrate-py/url#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pytest from 8.4.2 to 9.0.1 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/crate-py/url/pull/172\"\u003ecrate-py/url#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/173\"\u003ecrate-py/url#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/url/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/crate-py/url/compare/v0.18.0...v0.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/crate-py/url/commit/73303a5c9d44959584d46f0ef91a4bd7a5a3e709\"\u003e\u003ccode\u003e73303a5\u003c/code\u003e\u003c/a\u003e Bump to PyO3 v0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/9597b7b6ca0e47ee5cc02c66ac33093e72fa382d\"\u003e\u003ccode\u003e9597b7b\u003c/code\u003e\u003c/a\u003e Update the pre-commit link for zizmor.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/0e4bf834369ea22f9ef0e5ba9e0da608e7c0a451\"\u003e\u003ccode\u003e0e4bf83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/173\"\u003e#173\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/37827d1e1a51876d23f363121ce3ca65a510c700\"\u003e\u003ccode\u003e37827d1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/6ee7f78ba107df27bca1e868119f970e28506bc9\"\u003e\u003ccode\u003e6ee7f78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/172\"\u003e#172\u003c/a\u003e from crate-py/dependabot/pip/pytest-9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/4760097a3baf8bc407cdc0f0db05ca4ed7d2afba\"\u003e\u003ccode\u003e4760097\u003c/code\u003e\u003c/a\u003e Bump pytest from 8.4.2 to 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/c22ab9fd470edc90a5230e588c53c8e2050cb9d6\"\u003e\u003ccode\u003ec22ab9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/168\"\u003e#168\u003c/a\u003e from crate-py/dependabot/github_actions/github/codeql...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/f5e2adf10045d6e41abeaf60d90cf1e1a62af234\"\u003e\u003ccode\u003ef5e2adf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/171\"\u003e#171\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/34eadce3ede2654285bde942d73164672ed4d96b\"\u003e\u003ccode\u003e34eadce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/f1e2316da245fff71e4d9f57631539c7ce1b186c\"\u003e\u003ccode\u003ef1e2316\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/170\"\u003e#170\u003c/a\u003e from crate-py/dependabot/github_actions/softprops/act...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crate-py/url/compare/v0.18.0...v0.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.148.2 to 6.151.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.4\u003c/h2\u003e\n\u003cp\u003eThis patch adjusts how we compute the stopping threshold introduced in\nversion 6.151.3, while still maintaining 99% confidence that \u0026lt;1% of\ntest cases pass.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-4\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.3\u003c/h2\u003e\n\u003cp\u003eThis patch makes Hypothesis more tolerant of slow-to-satisfy\n\u0026quot;assume()\u0026quot; calls. Previously, Hypothesis would give up after\n\u0026quot;max_examples * 10\u0026quot; attempts; now it uses a statistical test to stop\nonly when 99% confident that \u0026lt;1% of examples would pass (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4623\"\u003e#4623\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/ajdavis\"\u003e\u003ccode\u003e@​ajdavis\u003c/code\u003e\u003c/a\u003e for this improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.2\u003c/h2\u003e\n\u003cp\u003eFormat our code with the latest version of black.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.1\u003c/h2\u003e\n\u003cp\u003eImprove internal categorization of test cases when an alternative\nbackend raises \u0026quot;BackendCannotProceed\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.0\u003c/h2\u003e\n\u003cp\u003eAdd 2025.12 to the list of recognized Array API versions in\n\u0026quot;hypothesis.extra.array_api\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.3\u003c/h2\u003e\n\u003cp\u003eHypothesis now generates powers of 2 more often when using\n\u0026quot;integers()\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.2\u003c/h2\u003e\n\u003cp\u003eUpdate some internal type hints.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.1\u003c/h2\u003e\n\u003cp\u003eThis patch fixes a bug where \u0026quot;recursive()\u0026quot; would fail in cases where\nthe \u0026quot;extend=\u0026quot; function does not reference it's argument - which was\nassumed by the recent \u0026quot;min_leaves=\u0026quot; feature, because the strategy\ncan't actually recurse otherwise.  (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4638\"\u003e#4638\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/HypothesisWorks/hypothesis/commit/fefce87e942c07f67ba37af737cff5450f4e3dc4\"\u003e\u003ccode\u003efefce87\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.4 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/cfb0d374af128daf919268cb0cd2d893ea413eb2\"\u003e\u003ccode\u003ecfb0d37\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4650\"\u003e#4650\u003c/a\u003e from Liam-DeVoe/stopping-rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/e4d7549d464a25cabdcbf9e818ee2b28e1f27f73\"\u003e\u003ccode\u003ee4d7549\u003c/code\u003e\u003c/a\u003e drop long comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/a09166c4057e34b7f7f2ac2449cc8da494d6a27e\"\u003e\u003ccode\u003ea09166c\u003c/code\u003e\u003c/a\u003e adjust stopping rule\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/f3d71e9a9f996b4ad9244602234a15b836babac8\"\u003e\u003ccode\u003ef3d71e9\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.3 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/42126d6e2e825338c8d17460589f60a3bd7f88ed\"\u003e\u003ccode\u003e42126d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4643\"\u003e#4643\u003c/a\u003e from ajdavis/issue-4623-filter-condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/f69cad62125b2aa64fab41d613aa68a2f80495f8\"\u003e\u003ccode\u003ef69cad6\u003c/code\u003e\u003c/a\u003e response to comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/34282ed3c0c2e913d86d2e8f3ff9cef6c4187539\"\u003e\u003ccode\u003e34282ed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4649\"\u003e#4649\u003c/a\u003e from Liam-DeVoe/next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/7de805fa2fae2ae9c334cfcadfb207eac2b50db2\"\u003e\u003ccode\u003e7de805f\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.2 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/559b1c195c469a04e3ebfccafb18883475f4fd3b\"\u003e\u003ccode\u003e559b1c1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4646\"\u003e#4646\u003c/a\u003e from HypothesisWorks/create-pull-request/patch\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.148.2...hypothesis-python-6.151.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.2.3 to 9.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.1.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_static_dir()\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  sphinxsetup.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/sphinx-doc/sphinx/blob/master/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.1.0 (released Dec 31, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :meth:\u003ccode\u003e~sphinx.application.Sphinx.add_static_dir\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/actions-marketplace-validations/bowtie-json-schema_bowtie/pull/132","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions-marketplace-validations%2Fbowtie-json-schema_bowtie/issues/132","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/132/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-02-02T04:58:35.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3883991698","node_id":"PR_kwDOH7M42c7A0GLe","number":2380,"state":"open","title":"chore(deps): bump the bowtie-dependencies group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-02T04:58:35.000Z","updated_at":"2026-02-05T15:01:55.426Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"bowtie-dependencies","update_count":16,"packages":[{"name":"aiodocker","old_version":"0.24.0","new_version":"0.25.0","repository_url":"https://github.com/aio-libs/aiodocker"},{"name":"diagnostic","old_version":"2.1.0","new_version":"3.0.0","repository_url":"https://github.com/pradyunsg/diagnostic"},{"name":"jsonschema","old_version":"4.25.1","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.1","repository_url":"https://github.com/Textualize/rich"},{"name":"rich-click","old_version":"1.9.4","new_version":"1.9.6","repository_url":"https://github.com/ewels/rich-click"},{"name":"rpds-py","old_version":"0.29.0","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"url-py","old_version":"0.18.0","new_version":"0.19.0","repository_url":"https://github.com/crate-py/url"},{"name":"hypothesis","old_version":"6.148.2","new_version":"6.151.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx","old_version":"8.2.3","new_version":"9.1.0","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"sphinx-substitution-extensions","old_version":"2025.1.2","new_version":"2026.1.12","repository_url":"https://github.com/adamtheturtle/sphinx-substitution-extensions"},{"name":"sphinxcontrib-spelling","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the bowtie-dependencies group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiodocker](https://github.com/aio-libs/aiodocker) | `0.24.0` | `0.25.0` |\n| [diagnostic](https://github.com/pradyunsg/diagnostic) | `2.1.0` | `3.0.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.1` |\n| [rich-click](https://github.com/ewels/rich-click) | `1.9.4` | `1.9.6` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.29.0` | `0.30.0` |\n| [url-py](https://github.com/crate-py/url) | `0.18.0` | `0.19.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.148.2` | `6.151.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.2.3` | `9.1.0` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [sphinx-substitution-extensions](https://github.com/adamtheturtle/sphinx-substitution-extensions) | `2025.1.2` | `2026.1.12` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.1` | `8.0.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n\n\nUpdates `aiodocker` from 0.24.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aio-libs/aiodocker/releases\"\u003eaiodocker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 support, updating dependencies such as aiohttp (minimum 3.8 to 3.10) and async-timeout (minimum to 5.0) for stdlib TaskGroup and timeout compatibility in Python 3.11+ (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e**kwargs\u003c/code\u003e with explicit parameters in \u003ccode\u003eDockerContainer.{stop,restart,kill,delete}()\u003c/code\u003e methods, accepting \u003ccode\u003et\u003c/code\u003e for server-side stop timeout and \u003ccode\u003etimeout\u003c/code\u003e for client-side request timeouts for consistency with other methods covered in the previous PRs \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/990\"\u003e#990\u003c/a\u003e; since this is a BREAKING CHANGE for those who have used the \u003ccode\u003etimeout\u003c/code\u003e argument for the \u003ccode\u003eDockerContainer.restart()\u003c/code\u003e method calls, the users should replace it with \u003ccode\u003et\u003c/code\u003e to keep the intended semantics (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue authenticating against private registries where the \u003ccode\u003eX-Registry-Auth\u003c/code\u003e header would require URL-safe substitutions. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Docker context endpoints with TLS, reading configuration from \u003ccode\u003e~/.docker/contexts/\u003c/code\u003e and respecting \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e environment variable and \u003ccode\u003eSkipTLSVerify\u003c/code\u003e option. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SSH protocol support for secure connections to remote Docker instances via \u0026quot;ssh://\u0026quot; URLs with mandatory host key verification (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce the client-level \u003ccode\u003etimeout\u003c/code\u003e configuration which becomes the base timeout configuration while still allowing legacy individual per-API timeouts and merging it into the base timeout.  Now setting individual float (total) timeout per-API call is HIGHLY DISCOURAGED in favor of composable timeouts via stdlib's \u003ccode\u003easyncio.timeout()\u003c/code\u003e async context manager. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the CI workflows to expand the test matrix for aiohttp 3.10/3.13 releases and let tests use the prebuilt artifact to ensure consistency with the release (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIsolate the docker instance for swarm and service tests via a docker-in-docker compose stack to avoid affecting the user environment (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply the default cooldown period (7 days) to the dependabot configuration (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/984\"\u003e#984\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/aio-libs/aiodocker/blob/main/CHANGES.rst\"\u003eaiodocker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.25.0 (2025-12-20)\u003c/h1\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 support, updating dependencies such as aiohttp (minimum 3.8 to 3.10) and async-timeout (minimum to 5.0) for stdlib TaskGroup and timeout compatibility in Python 3.11+ (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/976\"\u003e#976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003e**kwargs\u003c/code\u003e with explicit parameters in \u003ccode\u003eDockerContainer.{stop,restart,kill,delete}()\u003c/code\u003e methods, accepting \u003ccode\u003et\u003c/code\u003e for server-side stop timeout and \u003ccode\u003etimeout\u003c/code\u003e for client-side request timeouts for consistency with other methods covered in the previous PRs \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/990\"\u003e#990\u003c/a\u003e; since this is a BREAKING CHANGE for those who have used the \u003ccode\u003etimeout\u003c/code\u003e argument for the \u003ccode\u003eDockerContainer.restart()\u003c/code\u003e method calls, the users should replace it with \u003ccode\u003et\u003c/code\u003e to keep the intended semantics (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue authenticating against private registries where the \u003ccode\u003eX-Registry-Auth\u003c/code\u003e header would require URL-safe substitutions. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Docker context endpoints with TLS, reading configuration from \u003ccode\u003e~/.docker/contexts/\u003c/code\u003e and respecting \u003ccode\u003eDOCKER_CONTEXT\u003c/code\u003e environment variable and \u003ccode\u003eSkipTLSVerify\u003c/code\u003e option. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SSH protocol support for secure connections to remote Docker instances via \u0026quot;ssh://\u0026quot; URLs with mandatory host key verification (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIntroduce the client-level \u003ccode\u003etimeout\u003c/code\u003e configuration which becomes the base timeout configuration while still allowing legacy individual per-API timeouts and merging it into the base timeout.  Now setting individual float (total) timeout per-API call is HIGHLY DISCOURAGED in favor of composable timeouts via stdlib's \u003ccode\u003easyncio.timeout()\u003c/code\u003e async context manager. (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/983\"\u003e#983\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the CI workflows to expand the test matrix for aiohttp 3.10/3.13 releases and let tests use the prebuilt artifact to ensure consistency with the release (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIsolate the docker instance for swarm and service tests via a docker-in-docker compose stack to avoid affecting the user environment (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply the default cooldown period (7 days) to the dependabot configuration (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/984\"\u003e#984\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/aio-libs/aiodocker/commit/53cb28682c2e892c4631b6fd3cff3e515e0c791b\"\u003e\u003ccode\u003e53cb286\u003c/code\u003e\u003c/a\u003e ci: Update sigstore action to avoid using deprecated artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/cf67541d5a8adfc6787cc7a8a239ca8099dee3f5\"\u003e\u003ccode\u003ecf67541\u003c/code\u003e\u003c/a\u003e Release v0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/872a9c24ee9d034572ebda1d6d1dc1a93ca877be\"\u003e\u003ccode\u003e872a9c2\u003c/code\u003e\u003c/a\u003e Add missing consistent client timeout in DockerContainer.commit() (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/992\"\u003e#992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/b2c0cd712e3b9891f183e53ce22adac49fdcd1a7\"\u003e\u003ccode\u003eb2c0cd7\u003c/code\u003e\u003c/a\u003e Even more consistent timeouts for all long-running APIs (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/972d3e1d26f7fc8fc148f6084f3febcc01475b13\"\u003e\u003ccode\u003e972d3e1\u003c/code\u003e\u003c/a\u003e Make per-call and contextual timeout handling consistent across all long-runn...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/d2718327a3203a74e7453f6551b0680d7a834d13\"\u003e\u003ccode\u003ed271832\u003c/code\u003e\u003c/a\u003e Bump Ruff version in pre-commit-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/c2ddcfd6b5bd7e2ae4e69d6fd9a0973165e30370\"\u003e\u003ccode\u003ec2ddcfd\u003c/code\u003e\u003c/a\u003e Bump the ci group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/989\"\u003e#989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/ede0268ccb12564a11afcd302bee7ff757f03950\"\u003e\u003ccode\u003eede0268\u003c/code\u003e\u003c/a\u003e feat: add SSH support for remote Docker connections (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/982\"\u003e#982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/b5f93e01079f8fd72261d5d5529a327a9bb8fb2b\"\u003e\u003ccode\u003eb5f93e0\u003c/code\u003e\u003c/a\u003e feat: Add context arg and docs for config precedence (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/988\"\u003e#988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aio-libs/aiodocker/commit/e992db2fe2b87ff75733d46e99605ad8a173a580\"\u003e\u003ccode\u003ee992db2\u003c/code\u003e\u003c/a\u003e Add support for Docker context endpoints (\u003ca href=\"https://redirect.github.com/aio-libs/aiodocker/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aio-libs/aiodocker/compare/v0.24.0...v0.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `diagnostic` from 2.1.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/diagnostic/releases\"\u003ediagnostic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8, 3.9.\u003c/li\u003e\n\u003cli\u003eAdd explicitly tested support for Python 3.12, 3.13 and 3.14.\u003c/li\u003e\n\u003cli\u003eUse the standard library \u003ccode\u003eargparse\u003c/code\u003e for boolean options.\u003c/li\u003e\n\u003cli\u003eModernise the code and tooling used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.0\"\u003ehttps://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.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/pradyunsg/diagnostic/blob/main/docs/changelog.md\"\u003ediagnostic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.0.0 (2025-12-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8, 3.9.\u003c/li\u003e\n\u003cli\u003eAdd explicitly tested support for Python 3.12, 3.13 and 3.14.\u003c/li\u003e\n\u003cli\u003eUse the standard library \u003ccode\u003eargparse\u003c/code\u003e for boolean options.\u003c/li\u003e\n\u003cli\u003eModernise the code and tooling used.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/diagnostic/commit/56439f60a59cff430fd1316fc228a8d7ea6dce1c\"\u003e\u003ccode\u003e56439f6\u003c/code\u003e\u003c/a\u003e Release 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/e44dd86515456096ec3a5daa61afc79275f468b4\"\u003e\u003ccode\u003ee44dd86\u003c/code\u003e\u003c/a\u003e Drop manual provenance and build pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/36a5afd0d8c07fc103bde9d1f4e9e5218f2561a7\"\u003e\u003ccode\u003e36a5afd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/45\"\u003e#45\u003c/a\u003e from pradyunsg/dependabot/github_actions/github-action...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/37f95c77071a8ca27369da56e21ee9b88e82023a\"\u003e\u003ccode\u003e37f95c7\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 6 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/da2208610603e7203fc6b42e0cb6747be1ee17ea\"\u003e\u003ccode\u003eda22086\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/43\"\u003e#43\u003c/a\u003e from pradyunsg/argparse-builtin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/fa629882117dd1741c31ad36662b1103eea447f8\"\u003e\u003ccode\u003efa62988\u003c/code\u003e\u003c/a\u003e Use the stdlib implementation for boolean options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/c231f585393747dfe8bfd9c16db24ac6d2d4c944\"\u003e\u003ccode\u003ec231f58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pradyunsg/diagnostic/issues/42\"\u003e#42\u003c/a\u003e from pradyunsg/modernise\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/5f45e5d8284ec00daf1462215b8e00a405b056cb\"\u003e\u003ccode\u003e5f45e5d\u003c/code\u003e\u003c/a\u003e Add and test support for Python 3.12-3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/ff5ad05a80d78d3cc7cb478896fe1f00b005d106\"\u003e\u003ccode\u003eff5ad05\u003c/code\u003e\u003c/a\u003e Fix pyright deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/diagnostic/commit/679cc98ff965b43b970259625dcc3a1c88f165c4\"\u003e\u003ccode\u003e679cc98\u003c/code\u003e\u003c/a\u003e Pacify docutils \u0026lt;-\u0026gt; pyright errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/diagnostic/compare/2.1.0...3.0.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.1 to 4.26.0\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.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1400\"\u003epython-jsonschema/jsonschema#1400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1405\"\u003epython-jsonschema/jsonschema#1405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.5.0 to 6.6.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/python-jsonschema/jsonschema/pull/1406\"\u003epython-jsonschema/jsonschema#1406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1407\"\u003epython-jsonschema/jsonschema#1407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1413\"\u003epython-jsonschema/jsonschema#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.0 to 6.6.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1412\"\u003epython-jsonschema/jsonschema#1412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.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/python-jsonschema/jsonschema/pull/1410\"\u003epython-jsonschema/jsonschema#1410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.2 to 2.3.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/python-jsonschema/jsonschema/pull/1409\"\u003epython-jsonschema/jsonschema#1409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1411\"\u003epython-jsonschema/jsonschema#1411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidators: avoid \u003ccode\u003eurllib.request\u003c/code\u003e at import-time by \u003ca href=\"https://github.com/gudnimg\"\u003e\u003ccode\u003e@​gudnimg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1416\"\u003epython-jsonschema/jsonschema#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.1 to 6.8.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/python-jsonschema/jsonschema/pull/1417\"\u003epython-jsonschema/jsonschema#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.3 to 2.3.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1418\"\u003epython-jsonschema/jsonschema#1418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1415\"\u003epython-jsonschema/jsonschema#1415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.4 to 2.4.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1419\"\u003epython-jsonschema/jsonschema#1419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1420\"\u003epython-jsonschema/jsonschema#1420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.8.0 to 7.1.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/python-jsonschema/jsonschema/pull/1421\"\u003epython-jsonschema/jsonschema#1421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1424\"\u003epython-jsonschema/jsonschema#1424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.0 to 7.1.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1423\"\u003epython-jsonschema/jsonschema#1423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1425\"\u003epython-jsonschema/jsonschema#1425\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1429\"\u003epython-jsonschema/jsonschema#1429\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1431\"\u003epython-jsonschema/jsonschema#1431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.1 to 2.4.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/python-jsonschema/jsonschema/pull/1432\"\u003epython-jsonschema/jsonschema#1432\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.1 to 7.1.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/python-jsonschema/jsonschema/pull/1430\"\u003epython-jsonschema/jsonschema#1430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1434\"\u003epython-jsonschema/jsonschema#1434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.2 to 7.1.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1435\"\u003epython-jsonschema/jsonschema#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1436\"\u003epython-jsonschema/jsonschema#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1437\"\u003epython-jsonschema/jsonschema#1437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.2 to 2.5.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/python-jsonschema/jsonschema/pull/1438\"\u003epython-jsonschema/jsonschema#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1439\"\u003epython-jsonschema/jsonschema#1439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument \u003ccode\u003euuid\u003c/code\u003e format by \u003ca href=\"https://github.com/sim642\"\u003e\u003ccode\u003e@​sim642\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1440\"\u003epython-jsonschema/jsonschema#1440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1441\"\u003epython-jsonschema/jsonschema#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.4 to 7.1.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1442\"\u003epython-jsonschema/jsonschema#1442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1443\"\u003epython-jsonschema/jsonschema#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/gudnimg\"\u003e\u003ccode\u003e@​gudnimg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1416\"\u003epython-jsonschema/jsonschema#1416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sim642\"\u003e\u003ccode\u003e@​sim642\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1440\"\u003epython-jsonschema/jsonschema#1440\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.1...v4.26.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.25.1...v4.26.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDecrease import time by delaying importing of \u003ccode\u003eurllib.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1416\"\u003e#1416\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/a7277432b0f7bcd0551f6e589d30457017125df4\"\u003e\u003ccode\u003ea727743\u003c/code\u003e\u003c/a\u003e Add a changelog entry for 4.26.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6d28c13efbbd6cf136143fdbb18f79d4476091f6\"\u003e\u003ccode\u003e6d28c13\u003c/code\u003e\u003c/a\u003e Update the lockfile.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/739499edc33c007ff62180c9fef61dbf5480bb7b\"\u003e\u003ccode\u003e739499e\u003c/code\u003e\u003c/a\u003e Update pre-commit hooks.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/cb2d77980713577f65cc7e7c7c115932206393fd\"\u003e\u003ccode\u003ecb2d779\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1443\"\u003e#1443\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/e6bbbb7c5bcdb32a654572d17bfce264aefd1f9d\"\u003e\u003ccode\u003ee6bbbb7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/d56037a88faac4881214c6674a785b4abd428617\"\u003e\u003ccode\u003ed56037a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1442\"\u003e#1442\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/e54ce13fb590a5c17fb702431598a382de6e68f9\"\u003e\u003ccode\u003ee54ce13\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 7.1.4 to 7.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1f7c9fbd01d9c2f8ddd98065324062f7e122dbe1\"\u003e\u003ccode\u003e1f7c9fb\u003c/code\u003e\u003c/a\u003e Partially update docs requirements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/241aec982bc8c867f276779faf20d49d9774532f\"\u003e\u003ccode\u003e241aec9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1441\"\u003e#1441\u003c/a\u003e from python-jsonschema/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/2818efb4fa446ed4fa7815b4e09a7b4b7c633852\"\u003e\u003ccode\u003e2818efb\u003c/code\u003e\u003c/a\u003e Apache-2.0 -\u0026gt; nongpl\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.25.1...v4.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.2.0 to 14.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe Nerdy Fix release\u003c/h2\u003e\n\u003cp\u003eFixed issue with characters outside of unicode range reporting 0 cell size\u003c/p\u003e\n\u003ch2\u003e[14.3.1] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characters out of unicode range reporting a cell size if 0 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3944\"\u003eTextualize/rich#3944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe more emojis release\u003c/h2\u003e\n\u003cp\u003eRich now has support for multi-codepoint emojis. There have also been some Markdown improvements, and a number of fixes. See the release notes below for details.\u003c/p\u003e\n\u003ch2\u003e[14.3.0] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIPython now respects when a \u003ccode\u003eConsole\u003c/code\u003e instance is passed to \u003ccode\u003epretty.install\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3915\"\u003eTextualize/rich#3915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extraneous blank line on non-interactive disabled \u003ccode\u003eProgress\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3905\"\u003eTextualize/rich#3905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extra padding on first cell in columns \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3935\"\u003eTextualize/rich#3935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed trailing whitespace removed when soft_wrap=True \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3937\"\u003eTextualize/rich#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed style new-lines when soft_wrap = True and a print style is set \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for some multi-codepopint glyphs (will fix alignment issues for these characters) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eUNICODE_VERSION\u003c/code\u003e environment variable \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elast_render_height\u003c/code\u003e property to LiveRender \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose locals_max_depth and locals_overflow in traceback.install \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3906/\"\u003eTextualize/rich#3906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSegment.split_lines_terminator\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecells.cell_len\u003c/code\u003e now has a \u003ccode\u003eunicode_version\u003c/code\u003e parameter (that you probably should never change) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLive will not write a new line if there was nothing rendered \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown headers \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown tables, added \u003ccode\u003emarkdown.table.header\u003c/code\u003e and \u003ccode\u003emarkdown.table.border\u003c/code\u003e styles \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown rules \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.3.1] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characters out of unicode range reporting a cell size if 0 \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3944\"\u003eTextualize/rich#3944\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.0] - 2026-01-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIPython now respects when a \u003ccode\u003eConsole\u003c/code\u003e instance is passed to \u003ccode\u003epretty.install\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3915\"\u003eTextualize/rich#3915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extraneous blank line on non-interactive disabled \u003ccode\u003eProgress\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3905\"\u003eTextualize/rich#3905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed extra padding on first cell in columns \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3935\"\u003eTextualize/rich#3935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed trailing whitespace removed when soft_wrap=True \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3937\"\u003eTextualize/rich#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed style new-lines when soft_wrap = True and a print style is set \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for some multi-codepopint glyphs (will fix alignment issues for these characters) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eUNICODE_VERSION\u003c/code\u003e environment variable \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003elast_render_height\u003c/code\u003e property to LiveRender \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose locals_max_depth and locals_overflow in traceback.install \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3906/\"\u003eTextualize/rich#3906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSegment.split_lines_terminator\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3938\"\u003eTextualize/rich#3938\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecells.cell_len\u003c/code\u003e now has a \u003ccode\u003eunicode_version\u003c/code\u003e parameter (that you probably should never change) \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3930\"\u003eTextualize/rich#3930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLive will not write a new line if there was nothing rendered \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3934\"\u003eTextualize/rich#3934\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown headers \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown tables, added \u003ccode\u003emarkdown.table.header\u003c/code\u003e and \u003ccode\u003emarkdown.table.border\u003c/code\u003e styles \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged style of Markdown rules \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3942\"\u003eTextualize/rich#3942\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/f2a1c3b8a8f7edc41b1954cc3fb66bae32293a5e\"\u003e\u003ccode\u003ef2a1c3b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3944\"\u003e#3944\u003c/a\u003e from Textualize/nerf-fonts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/2e5a5dad304b59d75aa4b4ed6cae031693e3615e\"\u003e\u003ccode\u003e2e5a5da\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/73ee8232e7ea72a90130ccf67d8ffefd4122e9f4\"\u003e\u003ccode\u003e73ee823\u003c/code\u003e\u003c/a\u003e fix fonts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/36fe3f7ca9becca4777861d5e6e625f5a4a37545\"\u003e\u003ccode\u003e36fe3f7\u003c/code\u003e\u003c/a\u003e docstring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/9a99acc97d26d7832200a271ed8e95dd59df10c7\"\u003e\u003ccode\u003e9a99acc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3828\"\u003e#3828\u003c/a\u003e from RyanSharafuddin/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/2f56d4d1d22d901b444cfc731230e0f715498256\"\u003e\u003ccode\u003e2f56d4d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3942\"\u003e#3942\u003c/a\u003e from Textualize/markdown-style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/97b5beacc3d9c1336d4bc6a3d69fec363bfe5d2c\"\u003e\u003ccode\u003e97b5bea\u003c/code\u003e\u003c/a\u003e typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/9303d77e8d41c6f43c090420f921dd3fc66ebfd1\"\u003e\u003ccode\u003e9303d77\u003c/code\u003e\u003c/a\u003e markdown test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/900052cd5a67d43be8a484703c17599de6f88dea\"\u003e\u003ccode\u003e900052c\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/e9b0e19158034a49f2d7048cdf82d7146e59715f\"\u003e\u003ccode\u003ee9b0e19\u003c/code\u003e\u003c/a\u003e Update to markdown styles\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.2.0...v14.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich-click` from 1.9.4 to 1.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ewels/rich-click/releases\"\u003erich-click's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.9.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix minor Typer incompatibilities, most notably default panel placements.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edefault_panels_first\u003c/code\u003e config option which places default panels above user-defined panels.\u003c/li\u003e\n\u003cli\u003eFix to \u003ccode\u003e.pyi\u003c/code\u003e file [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/319\"\u003e#319\u003c/a\u003e] (\u003ca href=\"https://github.com/nemowang2003\"\u003e\u003ccode\u003e@​nemowang2003\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.9.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.9.5.dev0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\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/ewels/rich-click/blob/main/CHANGELOG.md\"\u003erich-click's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.6 (2026-01-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix minor Typer incompatibilities, most notably default panel placements.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003edefault_panels_first\u003c/code\u003e config option which places default panels above user-defined panels.\u003c/li\u003e\n\u003cli\u003eFix to \u003ccode\u003e.pyi\u003c/code\u003e file [\u003ca href=\"https://redirect.github.com/ewels/rich-click/pull/319\"\u003e#319\u003c/a\u003e] (\u003ca href=\"https://github.com/nemowang2003\"\u003e\u003ccode\u003e@​nemowang2003\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.9.5 (2025-12-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eno_args_is_help\u003c/code\u003e for Typer CLIs. [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/313\"\u003e#313\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix strange encoding issue on Windows in GH Actions [\u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/314\"\u003e#314\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/ewels/rich-click/commit/5cb336fd257bc9670fba103a44185f75eb07b8de\"\u003e\u003ccode\u003e5cb336f\u003c/code\u003e\u003c/a\u003e Generate new screengrabs with rich-codex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/9096d02dbeda5c24d4bf5c363077b03111960a1c\"\u003e\u003ccode\u003e9096d02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/320\"\u003e#320\u003c/a\u003e from dwreeves/minor-typer-compat-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/f5e4b108fa9965cf14fc745d289538719d9f5891\"\u003e\u003ccode\u003ef5e4b10\u003c/code\u003e\u003c/a\u003e Fix Typer incompatibilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/cf09124fd4fae9fea061c1af0c3ca49eb45f3398\"\u003e\u003ccode\u003ecf09124\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/319\"\u003e#319\u003c/a\u003e from nemowang2003/fix-pyi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/d97ac2d49280ce973c15b945c7403d094a1e9e46\"\u003e\u003ccode\u003ed97ac2d\u003c/code\u003e\u003c/a\u003e Fix incorrect type hint in rich_command.pyi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/bab2cbdeb0a20c89f2b1f2e7e649a8d75a824a86\"\u003e\u003ccode\u003ebab2cbd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/317\"\u003e#317\u003c/a\u003e from dwreeves/1.9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/5cb417753c75e0073c118a6aa25f888317bcf286\"\u003e\u003ccode\u003e5cb4177\u003c/code\u003e\u003c/a\u003e finalize version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/aa3e15fe25e047345e5e91c296eab5c2be881a75\"\u003e\u003ccode\u003eaa3e15f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ewels/rich-click/issues/316\"\u003e#316\u003c/a\u003e from peterdragun/fix/use_encodedstringio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/8c99252e914421ea5cd6893bf0bbca7cd1c566fc\"\u003e\u003ccode\u003e8c99252\u003c/code\u003e\u003c/a\u003e fix: Use _EncodedStringIO for Rich Console detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewels/rich-click/commit/0137fe896b42f7a4076559ebdd7a0d5a52e0ab04\"\u003e\u003ccode\u003e0137fe8\u003c/code\u003e\u003c/a\u003e fix timestamp\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ewels/rich-click/compare/v1.9.4...v1.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rpds-py` from 0.29.0 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/rpds/releases\"\u003erpds-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.30.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/202\"\u003ecrate-py/rpds#202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/203\"\u003ecrate-py/rpds#203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to PyO3 0.27.2 by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/204\"\u003ecrate-py/rpds#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.29.0...v0.30.0\"\u003ehttps://github.com/crate-py/rpds/compare/v0.29.0...v0.30.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/crate-py/rpds/commit/c38c9795cc6a1b4d95bd1863e7164f889a638adf\"\u003e\u003ccode\u003ec38c979\u003c/code\u003e\u003c/a\u003e Tag a release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/09c753822ffc4aac239f590d0aa33dbfcf6e6658\"\u003e\u003ccode\u003e09c7538\u003c/code\u003e\u003c/a\u003e Update the pre-commit link for zizmor.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/086997f24d385064e5b45656996462e45c9b9806\"\u003e\u003ccode\u003e086997f\u003c/code\u003e\u003c/a\u003e Remove an unneeded section of the pyproject.toml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/76909337a92fbd0e782137b7296ef2a620d17706\"\u003e\u003ccode\u003e7690933\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/204\"\u003e#204\u003c/a\u003e from edgarrmondragon/pyo3-0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/84f9bd13822be3d2d70c04391cb9bcfa7f6d565f\"\u003e\u003ccode\u003e84f9bd1\u003c/code\u003e\u003c/a\u003e Update to PyO3 0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5cb6bc4bbdad1fe12bf9b471cbe0b6e691846a6d\"\u003e\u003ccode\u003e5cb6bc4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/203\"\u003e#203\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/677a6dbb757e0551edade218d24ac731709c59f4\"\u003e\u003ccode\u003e677a6db\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5f1fa205f836761a15c71df017443e7860ce2be6\"\u003e\u003ccode\u003e5f1fa20\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/202\"\u003e#202\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/6657a51e8a3ea2559d5b168ef69a2e44f47353ce\"\u003e\u003ccode\u003e6657a51\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.29.0...v0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `url-py` from 0.18.0 to 0.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/url/releases\"\u003eurl-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.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/crate-py/url/pull/138\"\u003ecrate-py/url#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.29.11 to 3.30.1 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/crate-py/url/pull/139\"\u003ecrate-py/url#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.2 to 2.3.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/crate-py/url/pull/140\"\u003ecrate-py/url#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/141\"\u003ecrate-py/url#141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.0 to 6.6.1 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/crate-py/url/pull/142\"\u003ecrate-py/url#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/143\"\u003ecrate-py/url#143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.6.1 to 6.7.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/145\"\u003ecrate-py/url#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.30.1 to 3.30.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/crate-py/url/pull/144\"\u003ecrate-py/url#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/146\"\u003ecrate-py/url#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/147\"\u003ecrate-py/url#147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/149\"\u003ecrate-py/url#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/153\"\u003ecrate-py/url#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.3.3 to 2.4.1 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/crate-py/url/pull/154\"\u003ecrate-py/url#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6.7.0 to 7.1.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/crate-py/url/pull/156\"\u003ecrate-py/url#156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.0 to 7.1.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/crate-py/url/pull/165\"\u003ecrate-py/url#165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/162\"\u003ecrate-py/url#162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/161\"\u003ecrate-py/url#161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.26.0 to 0.27.1 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/crate-py/url/pull/163\"\u003ecrate-py/url#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/167\"\u003ecrate-py/url#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/169\"\u003ecrate-py/url#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump softprops/action-gh-release from 2.4.1 to 2.4.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/crate-py/url/pull/170\"\u003ecrate-py/url#170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/171\"\u003ecrate-py/url#171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 4.31.0 to 4.31.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/crate-py/url/pull/168\"\u003ecrate-py/url#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pytest from 8.4.2 to 9.0.1 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/crate-py/url/pull/172\"\u003ecrate-py/url#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/crate-py/url/pull/173\"\u003ecrate-py/url#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/url/compare/v0.18.0...v0.19.0\"\u003ehttps://github.com/crate-py/url/compare/v0.18.0...v0.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/crate-py/url/commit/73303a5c9d44959584d46f0ef91a4bd7a5a3e709\"\u003e\u003ccode\u003e73303a5\u003c/code\u003e\u003c/a\u003e Bump to PyO3 v0.27.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/9597b7b6ca0e47ee5cc02c66ac33093e72fa382d\"\u003e\u003ccode\u003e9597b7b\u003c/code\u003e\u003c/a\u003e Update the pre-commit link for zizmor.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/0e4bf834369ea22f9ef0e5ba9e0da608e7c0a451\"\u003e\u003ccode\u003e0e4bf83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/173\"\u003e#173\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/37827d1e1a51876d23f363121ce3ca65a510c700\"\u003e\u003ccode\u003e37827d1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/6ee7f78ba107df27bca1e868119f970e28506bc9\"\u003e\u003ccode\u003e6ee7f78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/172\"\u003e#172\u003c/a\u003e from crate-py/dependabot/pip/pytest-9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/4760097a3baf8bc407cdc0f0db05ca4ed7d2afba\"\u003e\u003ccode\u003e4760097\u003c/code\u003e\u003c/a\u003e Bump pytest from 8.4.2 to 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/c22ab9fd470edc90a5230e588c53c8e2050cb9d6\"\u003e\u003ccode\u003ec22ab9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/168\"\u003e#168\u003c/a\u003e from crate-py/dependabot/github_actions/github/codeql...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/f5e2adf10045d6e41abeaf60d90cf1e1a62af234\"\u003e\u003ccode\u003ef5e2adf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/171\"\u003e#171\u003c/a\u003e from crate-py/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/34eadce3ede2654285bde942d73164672ed4d96b\"\u003e\u003ccode\u003e34eadce\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/url/commit/f1e2316da245fff71e4d9f57631539c7ce1b186c\"\u003e\u003ccode\u003ef1e2316\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/url/issues/170\"\u003e#170\u003c/a\u003e from crate-py/dependabot/github_actions/softprops/act...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crate-py/url/compare/v0.18.0...v0.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.148.2 to 6.151.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.1\u003c/h2\u003e\n\u003cp\u003eImprove internal categorization of test cases when an alternative\nbackend raises \u0026quot;BackendCannotProceed\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.0\u003c/h2\u003e\n\u003cp\u003eAdd 2025.12 to the list of recognized Array API versions in\n\u0026quot;hypothesis.extra.array_api\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-151-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.3\u003c/h2\u003e\n\u003cp\u003eHypothesis now generates powers of 2 more often when using\n\u0026quot;integers()\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.2\u003c/h2\u003e\n\u003cp\u003eUpdate some internal type hints.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.1\u003c/h2\u003e\n\u003cp\u003eThis patch fixes a bug where \u0026quot;recursive()\u0026quot; would fail in cases where\nthe \u0026quot;extend=\u0026quot; function does not reference it's argument - which was\nassumed by the recent \u0026quot;min_leaves=\u0026quot; feature, because the strategy\ncan't actually recurse otherwise.  (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4638\"\u003e#4638\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eNow, the historical behavior is working-but-deprecated, or an error if\nyou explicitly pass \u0026quot;min_leaves=\u0026quot;.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.0\u003c/h2\u003e\n\u003cp\u003eThis release adds a \u0026quot;min_leaves\u0026quot; argument to \u0026quot;recursive()\u0026quot;, which\nensures that generated recursive structures have at least the\nspecified number of leaf nodes (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4205\"\u003e#4205\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.149.1\u003c/h2\u003e\n\u003cp\u003eAdd type hints to an internal class.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-149-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.149.0\u003c/h2\u003e\n\u003cp\u003eThis release extends the explain-phase \u0026quot;# or any other generated\nvalue\u0026quot; comments to sub-arguments within \u0026quot;builds()\u0026quot;, \u0026quot;tuples()\u0026quot;, and\n\u0026quot;fixed_dictionaries()\u0026quot;.\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/HypothesisWorks/hypothesis/commit/8cfe8a3ed0ba5669e1322010fb7531332a3ccbe8\"\u003e\u003ccode\u003e8cfe8a3\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.1 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/ca75e22f09339cd7a2fc5bb953d6ffa5f6563ae4\"\u003e\u003ccode\u003eca75e22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4647\"\u003e#4647\u003c/a\u003e from Liam-DeVoe/realize-cannot-proceed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/6a5f210d9fda39289ffb3247d1daf8192ef59557\"\u003e\u003ccode\u003e6a5f210\u003c/code\u003e\u003c/a\u003e more consistent constants coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/98a5a9a7922c1d44aead385ce5b4d6e479eb5f27\"\u003e\u003ccode\u003e98a5a9a\u003c/code\u003e\u003c/a\u003e format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/ba4fbe629fd0eaeb907eaabf0855ea6b38efb5cf\"\u003e\u003ccode\u003eba4fbe6\u003c/code\u003e\u003c/a\u003e improve BackendCannotProceed handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/4af5e8397309345c58af46614dd93ecad43b47f0\"\u003e\u003ccode\u003e4af5e83\u003c/code\u003e\u003c/a\u003e drop for_failure deprecation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/1f80995026f7d3f08b80dc73940de8df43878072\"\u003e\u003ccode\u003e1f80995\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.151.0 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/8ddfcc29d77fa21baa5fa428b053a16549933242\"\u003e\u003ccode\u003e8ddfcc2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4645\"\u003e#4645\u003c/a\u003e from ev-br/array_api_2025.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/edb6701cb50843df0ef88721b8d19a8dd7cc8552\"\u003e\u003ccode\u003eedb6701\u003c/code\u003e\u003c/a\u003e Add 2025.12 to allowed array API versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/83bd35aa9b53831956b55cbdbe9ad20dc7cc7b6f\"\u003e\u003ccode\u003e83bd35a\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.150.3 and update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.148.2...hypothesis-python-6.151.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.2.3 to 9.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 9.1.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_static_dir()\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  sphinxsetup.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/sphinx-doc/sphinx/blob/master/CHANGES.rst\"\u003esphinx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 9.1.0 (released Dec 31, 2025)\u003c/h1\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14153\"\u003e#14153\u003c/a\u003e: Drop Python 3.11 support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/12555\"\u003e#12555\u003c/a\u003e: Drop Docutils 0.20 support.\nPatch by Adam Turner\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :meth:\u003ccode\u003e~sphinx.application.Sphinx.add_static_dir\u003c/code\u003e for copying static\nassets from extensions to the build output.\nPatch by Jared Dillard\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14189\"\u003e#14189\u003c/a\u003e: autodoc: Fix duplicate \u003ccode\u003e:no-index-entry:\u003c/code\u003e for modules.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13713\"\u003e#13713\u003c/a\u003e: Fix compatibility with MyST-Parser.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.15.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Fix default option parsing.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eRemove incorrect static typing assertions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14050\"\u003e#14050\u003c/a\u003e: LaTeXTranslator fails to build documents using the \u0026quot;acronym\u0026quot;\nstandard role.\nPatch by Günter Milde\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix rendering for grid filled merged vertical cell.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14228\"\u003e#14228\u003c/a\u003e: LaTeX: Fix overrun footer for cases of merged vertical table cells.\nPatch by Tim Nordell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14207\"\u003e#14207\u003c/a\u003e: Fix creating \u003ccode\u003eHTMLThemeFactory\u003c/code\u003e objects in third-party extensions.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/3099\"\u003e#3099\u003c/a\u003e: LaTeX: PDF build crashes if a code-block contains more than\ncirca 1350 codelines (about 27 a4-sized pages at default pointsize).\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14064\"\u003e#14064\u003c/a\u003e: LaTeX: TABs ending up in sphinxVerbatim fail to obey tab stops.\nPatch by Jean-François B.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14089\"\u003e#14089\u003c/a\u003e: autodoc: Improve support for non-weakreferencable objects.\nPatch by Adam Turner\u003c/li\u003e\n\u003cli\u003eLaTeX: Fix accidental removal at \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/8854\"\u003e#8854\u003c/a\u003e) of the documentation of\n\u003ccode\u003eliteralblockcappos\u003c/code\u003e key of  :ref:\u003ccode\u003e'sphinxsetup' \u0026lt;latexsphinxsetup\u0026gt;\u003c/code\u003e.\nPatch by Jean-François B.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/cc7c6f435ad37bb12264f8118c8461b230e6830c\"\u003e\u003ccode\u003ecc7c6f4\u003c/code\u003e\u003c/a\u003e Bump to 9.1.0 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b127b9478aa4654a82eeadf1a1e89715d3927608\"\u003e\u003ccode\u003eb127b94\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eapp.add_static_dir()\u003c/code\u003e for copying extension static files (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/14219\"\u003e#14219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/20f1c46790d370b50fa7396cca3e1cc658ce9f89\"\u003e\u003ccode\u003e20f1c46\u003c/code\u003e\u003c/a\u003e LaTeX: Inhibit breaks for rows with merged vertical cells (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/1...\n\n_Description has been truncated_","html_url":"https://github.com/bowtie-json-schema/bowtie/pull/2380","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bowtie-json-schema%2Fbowtie/issues/2380","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2380/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-02-01T11:10:59.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3881829355","node_id":"PR_kwDOJpUnI87AtFcc","number":122,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 79 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T11:05:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T11:10:59.000Z","updated_at":"2026-03-01T11:05:23.000Z","time_to_close":2418862,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":79,"packages":[{"name":"black","old_version":"25.9.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.3","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pandas-stubs","old_version":"2.3.2.250926","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"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":"async-lru","old_version":"2.0.5","new_version":"2.1.0","repository_url":"https://github.com/aio-libs/async-lru"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"certifi","old_version":"2025.10.5","new_version":"2026.1.4","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.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"debugpy","old_version":"1.8.17","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.60.1","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipython","old_version":"8.37.0","new_version":"8.38.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":"json5","old_version":"0.12.1","new_version":"0.13.0","repository_url":"https://github.com/dpranke/pyjson5"},{"name":"jsonschema","old_version":"4.25.1","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jupyter-client","old_version":"8.6.3","new_version":"8.8.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyter-server-terminals","old_version":"0.5.3","new_version":"0.5.4","repository_url":"https://github.com/jupyter-server/jupyter_server_terminals"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.3","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"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.4","new_version":"3.2.0","repository_url":"https://github.com/lepture/mistune"},{"name":"nbclient","old_version":"0.10.2","new_version":"0.10.4","repository_url":"https://github.com/jupyter/nbclient"},{"name":"nbconvert","old_version":"7.16.6","new_version":"7.17.0","repository_url":"https://github.com/jupyter/nbconvert"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"numba","old_version":"0.62.1","new_version":"0.63.1","repository_url":"https://github.com/numba/numba"},{"name":"numexpr","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pillow","old_version":"11.3.0","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prometheus-client","old_version":"0.23.1","new_version":"0.24.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"psutil","old_version":"7.1.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.5","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"roman-numerals-py","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.1"},{"name":"send2trash","old_version":"1.8.3","new_version":"2.1.0","repository_url":"https://github.com/arsenetar/send2trash"},{"name":"setuptools","old_version":"80.9.0","new_version":"80.10.2","repository_url":"https://github.com/pypa/setuptools"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.48.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"tornado","old_version":"6.5.2","new_version":"6.5.4","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.36.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"wcwidth","old_version":"0.2.14","new_version":"0.5.3","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":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 75 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.9.0` | `26.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.2` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.3` | `0.14.14` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.0` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.2.250926` | `2.3.3.260113` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.1` |\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| [async-lru](https://github.com/aio-libs/async-lru) | `2.0.5` | `2.1.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.10.5` | `2026.1.4` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.17` | `1.8.20` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.60.1` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `8.38.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [json5](https://github.com/dpranke/pyjson5) | `0.12.1` | `0.13.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.6.3` | `8.8.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyter-server-terminals](https://github.com/jupyter-server/jupyter_server_terminals) | `0.5.3` | `0.5.4` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.3` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mistune](https://github.com/lepture/mistune) | `3.1.4` | `3.2.0` |\n| [nbclient](https://github.com/jupyter/nbclient) | `0.10.2` | `0.10.4` |\n| [nbconvert](https://github.com/jupyter/nbconvert) | `7.16.6` | `7.17.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [numba](https://github.com/numba/numba) | `0.62.1` | `0.63.1` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.13.1` | `2.14.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.23.1` | `0.24.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.2.2` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.5` | `3.3.2` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [roman-numerals-py](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.1` |\n| [send2trash](https://github.com/arsenetar/send2trash) | `1.8.3` | `2.1.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `80.10.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.48.0` | `0.52.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.2` | `6.5.4` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.36.1` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.14` | `0.5.3` |\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| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n\n\nUpdates `black` from 25.9.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \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\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \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\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\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/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/513e97162536cb94aeb94ed3cbe487ca64d13e07\"\u003e\u003ccode\u003e513e971\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27a8230cf0ef73abca824d2a8622235d9ad8ab96\"\u003e\u003ccode\u003e27a8230\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27d8daac216ffef80276515b22cf679f9fabc422\"\u003e\u003ccode\u003e27d8daa\u003c/code\u003e\u003c/a\u003e refactor: plural does more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2f248cf095fc49d3599c39befdea6a5552ccd23\"\u003e\u003ccode\u003ea2f248c\u003c/code\u003e\u003c/a\u003e fix: stdlib might be through a symlink. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003e#2115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bc52a22953759f71c291d31e7d17faf9903c0667\"\u003e\u003ccode\u003ebc52a22\u003c/code\u003e\u003c/a\u003e debug: re-organize Matchers to show more of what they do\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f338d816ba7fcd23934a9397d15450593f0f20d9\"\u003e\u003ccode\u003ef338d81\u003c/code\u003e\u003c/a\u003e debug: build is a tuple, don't show it on two lines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/92020e469ab6c80cbe24786d0250a571d5f569cf\"\u003e\u003ccode\u003e92020e4\u003c/code\u003e\u003c/a\u003e refactor(test): convert to parametrized\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6387d0a60d80cb96231ad32fe81be47cddfe1c78\"\u003e\u003ccode\u003e6387d0a\u003c/code\u003e\u003c/a\u003e test: let (most) tests run with no network\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1d31e33cfe0ccef7d87c1f0c6219f55a3d9b5eee\"\u003e\u003ccode\u003e1d31e33\u003c/code\u003e\u003c/a\u003e build: workflows sometimes need more than 10 min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/62949782b7810d8ffc228ba0e00f81c2ab81cda7\"\u003e\u003ccode\u003e6294978\u003c/code\u003e\u003c/a\u003e refactor: an error message is now uniform across versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.3 to 0.14.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\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/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\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.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\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/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\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!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/8b2e7b36f246b990fe473a84eef25ff429e59ecf\"\u003e\u003ccode\u003e8b2e7b3\u003c/code\u003e\u003c/a\u003e Prepare release v0.14.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22813\"\u003e#22813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4c7d1f50fd8d1baf06a3c8885ecd0ded0113d383\"\u003e\u003ccode\u003e4c7d1f5\u003c/code\u003e\u003c/a\u003e [ty] Infer \u003ccode\u003eTypedDict\u003c/code\u003e types with \u0026gt;=1 required key as being always truthy (\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/b7de4341535ff2b299695335e0a7b9ebaf297348\"\u003e\u003ccode\u003eb7de434\u003c/code\u003e\u003c/a\u003e add CCfW hooks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22803\"\u003e#22803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b912dfc8788f8f8c351767899df6b72ce3366352\"\u003e\u003ccode\u003eb912dfc\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1ff062d1cccb8025de184a55c6dfe469a4293249\"\u003e\u003ccode\u003e1ff062d\u003c/code\u003e\u003c/a\u003e [ty] Improve completion rankings for raise-from/except contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22775\"\u003e#22775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7e408a51d24db2bca248bb90f2f7938f83efd22b\"\u003e\u003ccode\u003e7e408a5\u003c/code\u003e\u003c/a\u003e Update dependency wrangler to v4.59.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22793\"\u003e#22793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceb876b82300bd237d11e3eb77c46fcf3d3afe85\"\u003e\u003ccode\u003eceb876b\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c5b4ee68c90faf0e609fa6553a171a7ba60ebdcb\"\u003e\u003ccode\u003ec5b4ee6\u003c/code\u003e\u003c/a\u003e [ty] Support solving generics involving PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22678\"\u003e#22678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9a61293153f43df9963c727539309b76ac4756d\"\u003e\u003ccode\u003eb9a6129\u003c/code\u003e\u003c/a\u003e [ty] Improve support for kwarg splats in dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22781\"\u003e#22781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f516d47ceb7f6a0c3a95eaaa2c7451a32b5d7120\"\u003e\u003ccode\u003ef516d47\u003c/code\u003e\u003c/a\u003e Update contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.3...0.14.14\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.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.6 to 3.10.8\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.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\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\u003c/blockquote\u003e\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/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.6...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-pre-system/pull/122","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-pre-system/issues/122","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/122/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-02-01T04:33:42.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3881163371","node_id":"PR_kwDOQbl45M7Aq8ij","number":13,"state":"closed","title":"Build(deps): Bump the poetry-dependencies group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T04:30:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T04:33:42.000Z","updated_at":"2026-03-01T04:30:47.000Z","time_to_close":2419024,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps): Bump","group_name":"poetry-dependencies","update_count":35,"packages":[{"name":"black","old_version":"25.11.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.12.0","new_version":"7.13.2","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.6","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"cachetools","old_version":"6.2.2","new_version":"6.2.6","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"filelock","old_version":"3.20.0","new_version":"3.20.3","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-auth","old_version":"2.43.0","new_version":"2.48.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"identify","old_version":"2.6.15","new_version":"2.6.16","repository_url":"https://github.com/pre-commit/identify"},{"name":"ipython","old_version":"8.37.0","new_version":"8.38.0","repository_url":"https://github.com/ipython/ipython"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pyasn1","old_version":"0.6.1","new_version":"0.6.2","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pytokens","old_version":"0.3.0","new_version":"0.4.1","repository_url":"https://github.com/tusharsadhwani/pytokens"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.1"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.50.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"types-deprecated","old_version":"1.3.1.20251101","new_version":"1.3.1.20260130","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.35.4","new_version":"20.36.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wcwidth","old_version":"0.2.14","new_version":"0.5.3","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websockets","old_version":"15.0.1","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"wrapt","old_version":"2.0.1","new_version":"2.1.0","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 33 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.11.0` | `26.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.12.0` | `7.13.2` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.6` | `0.14.14` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.2` | `6.2.6` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.0` | `3.20.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.43.0` | `2.48.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.15` | `2.6.16` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `8.38.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.0` | `4.5.1` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.1` | `0.6.2` |\n| [pytokens](https://github.com/tusharsadhwani/pytokens) | `0.3.0` | `0.4.1` |\n| ruamel-yaml | `0.18.16` | `0.19.1` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.3.0` | `2.4.0` |\n| [types-deprecated](https://github.com/typeshed-internal/stub_uploader) | `1.3.1.20251101` | `1.3.1.20260130` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.35.4` | `20.36.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.14` | `0.5.3` |\n| [websockets](https://github.com/python-websockets/websockets) | `15.0.1` | `16.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.0.1` | `2.1.0` |\n\n\nUpdates `black` from 25.11.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \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\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cp\u003eIntroduces the 2026 stable style (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e), stabilizing the following changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ealways_one_newline_after_import\u003c/code\u003e: Always force one blank line after import\nstatements, except when the line after the import is a comment or an import statement\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4489\"\u003e#4489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e: Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e behavior on one-liner declarations,\nsuch as \u003ccode\u003edef foo(): return \u0026quot;mock\u0026quot; # fmt: skip\u003c/code\u003e, where previously the declaration would\nhave been incorrectly collapsed (\u003ca href=\"https://redirect.github.com/psf/black/issues/4800\"\u003e#4800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_module_docstring_detection\u003c/code\u003e: Fix module docstrings being treated as normal\nstrings if preceded by comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efix_type_expansion_split\u003c/code\u003e: Fix type expansions split in generic functions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4777\"\u003e#4777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultiline_string_handling\u003c/code\u003e: Make expressions involving multiline strings more compact\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enormalize_cr_newlines\u003c/code\u003e: Add \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to\nnormalize file newlines both from and to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eremove_parens_around_except_types\u003c/code\u003e: Remove parentheses around multiple exception\ntypes in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without \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\u003e\u003ccode\u003eremove_parens_from_assignment_lhs\u003c/code\u003e: Remove unnecessary parentheses from the left-hand\nside of assignments while preserving magic trailing commas and intentional multiline\nformatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003estandardize_type_comments\u003c/code\u003e: Format type comments which have zero or more spaces\nbetween \u003ccode\u003e#\u003c/code\u003e and \u003ccode\u003etype:\u003c/code\u003e or between \u003ccode\u003etype:\u003c/code\u003e and value to \u003ccode\u003e# type: (value)\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe following change was not in any previous stable release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated the \u003ccode\u003e_width_table.py\u003c/code\u003e and added tests for the Khmer language (\u003ca href=\"https://redirect.github.com/psf/black/issues/4253\"\u003e#4253\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release alo bumps \u003ccode\u003epathspec\u003c/code\u003e to v1 and fixes inconsistencies with Git's\n\u003ccode\u003e.gitignore\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e with this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eexclude/\n!exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, \u003ccode\u003eexclude/not_this/foo.py\u003c/code\u003e will remain ignored. To ensure \u003ccode\u003eexclude/not_this/\u003c/code\u003e and\nall of it's children are included in formatting (and in Git), use this \u003ccode\u003e.gitignore\u003c/code\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e*/exclude/*\n!*/exclude/not_this/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis new behavior matches Git. The leading \u003ccode\u003e*/\u003c/code\u003e are only necessary if you wish to ignore\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/psf/black/commit/6305bf1ae645ab7541be4f5028a86239316178eb\"\u003e\u003ccode\u003e6305bf1\u003c/code\u003e\u003c/a\u003e Prepare 2026.1.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4892\"\u003e#4892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e71305bee302f7f9016b228361e5ae69669dca7b\"\u003e\u003ccode\u003ee71305b\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4961\"\u003e#4961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/21a2a8c2b1d0c8d47bc00cc59591470f6a9e2307\"\u003e\u003ccode\u003e21a2a8c\u003c/code\u003e\u003c/a\u003e Fix Shutdown multiprocessing Manager in schedule_formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4952\"\u003e#4952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/e3146cea4245fcee29d007cb45d9faaf63271586\"\u003e\u003ccode\u003ee3146ce\u003c/code\u003e\u003c/a\u003e Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4919\"\u003e#4919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/fe1fbc4fdfa03fa1d460f975b8aca77e4b4f1a4a\"\u003e\u003ccode\u003efe1fbc4\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4923\"\u003e#4923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b4b7fcfe00bb0d99322e07e87fc2f0992f7a4d8\"\u003e\u003ccode\u003e2b4b7fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4922\"\u003e#4922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab\"\u003e\u003ccode\u003ed745be6\u003c/code\u003e\u003c/a\u003e docs: document --force-exclude for pre-commit workflows (\u003ca href=\"https://redirect.github.com/psf/black/issues/4957\"\u003e#4957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b41acd6ebbe76e18b49286166924f73f01c3fd02\"\u003e\u003ccode\u003eb41acd6\u003c/code\u003e\u003c/a\u003e Various CI and doc refactors (\u003ca href=\"https://redirect.github.com/psf/black/issues/4928\"\u003e#4928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6f43612766da4a2f275b575af0802c3e73b6ed83\"\u003e\u003ccode\u003e6f43612\u003c/code\u003e\u003c/a\u003e Handle pathspec v1 changes (\u003ca href=\"https://redirect.github.com/psf/black/issues/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/200c550aff44372f801a6d826a361cb26f45a504\"\u003e\u003ccode\u003e200c550\u003c/code\u003e\u003c/a\u003e Bump furo from 2025.9.25 to 2025.12.19 in /docs (\u003ca href=\"https://redirect.github.com/psf/black/issues/4933\"\u003e#4933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.12.0 to 7.13.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/513e97162536cb94aeb94ed3cbe487ca64d13e07\"\u003e\u003ccode\u003e513e971\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27a8230cf0ef73abca824d2a8622235d9ad8ab96\"\u003e\u003ccode\u003e27a8230\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/27d8daac216ffef80276515b22cf679f9fabc422\"\u003e\u003ccode\u003e27d8daa\u003c/code\u003e\u003c/a\u003e refactor: plural does more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2f248cf095fc49d3599c39befdea6a5552ccd23\"\u003e\u003ccode\u003ea2f248c\u003c/code\u003e\u003c/a\u003e fix: stdlib might be through a symlink. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003e#2115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bc52a22953759f71c291d31e7d17faf9903c0667\"\u003e\u003ccode\u003ebc52a22\u003c/code\u003e\u003c/a\u003e debug: re-organize Matchers to show more of what they do\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f338d816ba7fcd23934a9397d15450593f0f20d9\"\u003e\u003ccode\u003ef338d81\u003c/code\u003e\u003c/a\u003e debug: build is a tuple, don't show it on two lines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/92020e469ab6c80cbe24786d0250a571d5f569cf\"\u003e\u003ccode\u003e92020e4\u003c/code\u003e\u003c/a\u003e refactor(test): convert to parametrized\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6387d0a60d80cb96231ad32fe81be47cddfe1c78\"\u003e\u003ccode\u003e6387d0a\u003c/code\u003e\u003c/a\u003e test: let (most) tests run with no network\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1d31e33cfe0ccef7d87c1f0c6219f55a3d9b5eee\"\u003e\u003ccode\u003e1d31e33\u003c/code\u003e\u003c/a\u003e build: workflows sometimes need more than 10 min\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/62949782b7810d8ffc228ba0e00f81c2ab81cda7\"\u003e\u003ccode\u003e6294978\u003c/code\u003e\u003c/a\u003e refactor: an error message is now uniform across versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.12.0...7.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.6 to 0.14.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\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/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\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.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-22.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve required parentheses in lambda bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22747\"\u003e#22747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine range suppression code diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22613\"\u003e#22613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Second positional argument to \u003ccode\u003eAsset\u003c/code\u003e/\u003ccode\u003eDataset\u003c/code\u003e should not be a dictionary (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22453\"\u003e#22453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect duplicate entries in \u003ccode\u003e__all__\u003c/code\u003e (\u003ccode\u003eRUF068\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22114\"\u003e#22114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Allow shadowing non-builtin bindings (\u003ccode\u003eUP029\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22749\"\u003e#22749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pie\u003c/code\u003e] Detect duplicated declared class fields in \u003ccode\u003ePIE794\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22717\"\u003e#22717\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e, \u003ccode\u003e__enter__\u003c/code\u003e, \u003ccode\u003e__aenter__\u003c/code\u003e in \u003ccode\u003ePYI034\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22798\"\u003e#22798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Support \u003ccode\u003echeck\u003c/code\u003e parameter in \u003ccode\u003ePT011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22725\"\u003e#22725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add exception for \u003ccode\u003ectypes.Structure._fields_\u003c/code\u003e (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22559\"\u003e#22559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMany fixes are now marked unsafe if they would remove comments:\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22656\"\u003e\u003ccode\u003eB009\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22657\"\u003e\u003ccode\u003eB010\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22658\"\u003e\u003ccode\u003eB013\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22659\"\u003e\u003ccode\u003eB014\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22632\"\u003e\u003ccode\u003eB033\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22662\"\u003e\u003ccode\u003eSIM910\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22661\"\u003e\u003ccode\u003eSIM911\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP007\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22774\"\u003e\u003ccode\u003eUP039\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22773\"\u003e\u003ccode\u003eUP041\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22772\"\u003e\u003ccode\u003eUP045\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22767\"\u003e\u003ccode\u003eFURB105\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22681\"\u003e\u003ccode\u003eFURB116\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22680\"\u003e\u003ccode\u003eFURB136\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22679\"\u003e\u003ccode\u003eFURB140\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22670\"\u003e\u003ccode\u003eFURB145\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22669\"\u003e\u003ccode\u003eFURB154\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22668\"\u003e\u003ccode\u003eFURB157\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22667\"\u003e\u003ccode\u003eFURB164\u003c/code\u003e\u003c/a\u003e,\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22666\"\u003e\u003ccode\u003eFURB181\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22665\"\u003e\u003ccode\u003eFURB188\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22663\"\u003e\u003ccode\u003eRUF019\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22664\"\u003e\u003ccode\u003eRUF020\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--exit-non-zero-on-format\u003c/code\u003e to formatter exit codes section (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22761\"\u003e#22761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eFastAPI\u003c/code\u003e] Document fix safety for \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22655\"\u003e#22655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Tweak explanation to focus on latency/efficiency tradeoff (\u003ccode\u003eASYNC110\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22715\"\u003e#22715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePD002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22561\"\u003e#22561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB101\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22770\"\u003e#22770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Make the example work out of box (\u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22769\"\u003e#22769\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/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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/caiquejjx\"\u003e\u003ccode\u003e@​caiquejjx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sjyangkevin\"\u003e\u003ccode\u003e@​sjyangkevin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MeGaGiGaGon\"\u003e\u003ccode\u003e@​MeGaGiGaGon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leandrobbraga\"\u003e\u003ccode\u003e@​leandrobbraga\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!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/8b2e7b36f246b990fe473a84eef25ff429e59ecf\"\u003e\u003ccode\u003e8b2e7b3\u003c/code\u003e\u003c/a\u003e Prepare release v0.14.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22813\"\u003e#22813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4c7d1f50fd8d1baf06a3c8885ecd0ded0113d383\"\u003e\u003ccode\u003e4c7d1f5\u003c/code\u003e\u003c/a\u003e [ty] Infer \u003ccode\u003eTypedDict\u003c/code\u003e types with \u0026gt;=1 required key as being always truthy (\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/b7de4341535ff2b299695335e0a7b9ebaf297348\"\u003e\u003ccode\u003eb7de434\u003c/code\u003e\u003c/a\u003e add CCfW hooks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22803\"\u003e#22803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b912dfc8788f8f8c351767899df6b72ce3366352\"\u003e\u003ccode\u003eb912dfc\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Apply \u003ccode\u003eUP045\u003c/code\u003e to string arguments of \u003ccode\u003etyping.cast\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22320\"\u003e#22320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1ff062d1cccb8025de184a55c6dfe469a4293249\"\u003e\u003ccode\u003e1ff062d\u003c/code\u003e\u003c/a\u003e [ty] Improve completion rankings for raise-from/except contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22775\"\u003e#22775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7e408a51d24db2bca248bb90f2f7938f83efd22b\"\u003e\u003ccode\u003e7e408a5\u003c/code\u003e\u003c/a\u003e Update dependency wrangler to v4.59.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22793\"\u003e#22793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ceb876b82300bd237d11e3eb77c46fcf3d3afe85\"\u003e\u003ccode\u003eceb876b\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix inconsistent handling of forward references for \u003ccode\u003e__new__\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c5b4ee68c90faf0e609fa6553a171a7ba60ebdcb\"\u003e\u003ccode\u003ec5b4ee6\u003c/code\u003e\u003c/a\u003e [ty] Support solving generics involving PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22678\"\u003e#22678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9a61293153f43df9963c727539309b76ac4756d\"\u003e\u003ccode\u003eb9a6129\u003c/code\u003e\u003c/a\u003e [ty] Improve support for kwarg splats in dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22781\"\u003e#22781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f516d47ceb7f6a0c3a95eaaa2c7451a32b5d7120\"\u003e\u003ccode\u003ef516d47\u003c/code\u003e\u003c/a\u003e Update contributing guide for adding a new rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22779\"\u003e#22779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.6...0.14.14\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dapla-auth-client` from 1.2.0 to 1.2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/releases\"\u003edapla-auth-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.5\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate from poetry to uv build tool (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/41\"\u003e#41\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecompatibility 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e) \u003ca href=\"https://github.com/aecorn\"\u003e\u003ccode\u003e@​aecorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecompatibility 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e) \u003ca href=\"https://github.com/aecorn\"\u003e\u003ccode\u003e@​aecorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-action-dependencies group across 1 directory with 8 updates (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/43\"\u003e#43\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump uv from 0.9.10 to 0.9.25 in /.github/workflows in the workflows-dependencies group across 1 directory (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/42\"\u003e#42\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange constraint to supporting Python 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/39\"\u003e#39\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix dependency constraints (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/37\"\u003e#37\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warning. Remove Python upper bound (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/32\"\u003e#32\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd backstage docs (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/30\"\u003e#30\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\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/statisticsnorway/dapla-auth-client/commit/167189fbc03bbd582686aefaabf2035ff69785b5\"\u003e\u003ccode\u003e167189f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e from statisticsnorway/compatibility-python-310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/4a9ef71858a52eab4e7c532207f7da3d37fb8307\"\u003e\u003ccode\u003e4a9ef71\u003c/code\u003e\u003c/a\u003e Bump release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/c7f0416bf50f5b67d5ec99a13f74e03beef45b11\"\u003e\u003ccode\u003ec7f0416\u003c/code\u003e\u003c/a\u003e uv lock aaa\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/57f3b0edf58c00d41fcea745a458de81ab64735e\"\u003e\u003ccode\u003e57f3b0e\u003c/code\u003e\u003c/a\u003e bump version of package to make release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/6ad8ca0f7102323edd53de4a7f61d7945227a8bc\"\u003e\u003ccode\u003e6ad8ca0\u003c/code\u003e\u003c/a\u003e needs uv lock man\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/3d7201084dfbef1ddc8731e6f895710936fcb2b6\"\u003e\u003ccode\u003e3d72010\u003c/code\u003e\u003c/a\u003e dont f with the lock files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/c0aee5908a23d70acf101280cb082c5195ff4444\"\u003e\u003ccode\u003ec0aee59\u003c/code\u003e\u003c/a\u003e ruff did not f up when conscious of python 3.10 in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/8726c65092c6f7e2957cbff4e0cfdb09b4b2ab72\"\u003e\u003ccode\u003e8726c65\u003c/code\u003e\u003c/a\u003e Merge branch 'compatibility-python-310' of \u003ca href=\"https://github.com/statisticsnorwa\"\u003ehttps://github.com/statisticsnorwa\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/99cfc1f573992066e3e8b622b5e1ad6d9bd11d5c\"\u003e\u003ccode\u003e99cfc1f\u003c/code\u003e\u003c/a\u003e ruff is messing mah stuff man\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/1b6899658260771f43292fa7086b00229a54b2f8\"\u003e\u003ccode\u003e1b68996\u003c/code\u003e\u003c/a\u003e pre-commit mah boy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/compare/v1.2.0...v1.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.11.0 to 4.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged all functions currently raising the private \u003ccode\u003eNoCurrentAsyncBackend\u003c/code\u003e exception (since v4.12.0) to instead raise the public \u003ccode\u003eNoEventLoopError\u003c/code\u003e exception (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with instance methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1042\"\u003e#1042\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/a0dccbd78d75886247ae7846b460fd390cc94fbd\"\u003e\u003ccode\u003ea0dccbd\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e1121a735c977c00c18b3a581d28daf83a279833\"\u003e\u003ccode\u003ee1121a7\u003c/code\u003e\u003c/a\u003e Enabled tests for the 4.12.x branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/69ab43e549517ce554f84365fed9da90e806c303\"\u003e\u003ccode\u003e69ab43e\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e not working with methods (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4f4b33ed56edd1bc4785a368a103ad8138730d91\"\u003e\u003ccode\u003e4f4b33e\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eBlockingPortal.__new__\u003c/code\u003e hack (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/af17d89b80ebbd526215e2dbd025b284730aaa3f\"\u003e\u003ccode\u003eaf17d89\u003c/code\u003e\u003c/a\u003e Replaced the NoCurrentAsyncBackend exception with NoEventLoopError (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1049\"\u003e#1049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/4310264312a2e86e792481bdb05bdb381678a6b5\"\u003e\u003ccode\u003e4310264\u003c/code\u003e\u003c/a\u003e Updated pre-commit modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/0cc6723ba5a2fdaa98a24852d3681c4ed99b8863\"\u003e\u003ccode\u003e0cc6723\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1051\"\u003e#1051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/bc021b634291223d6829c0a689152173443a8545\"\u003e\u003ccode\u003ebc021b6\u003c/code\u003e\u003c/a\u003e Fixed the download-artifact settings to retain the expected behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c6000aa2837f75733f3c09c454f5a31eb9f9f536\"\u003e\u003ccode\u003ec6000aa\u003c/code\u003e\u003c/a\u003e Corrected the format of the version in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9d1bfe0da4261bcef3c10cd31218237805a89937\"\u003e\u003ccode\u003e9d1bfe0\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.14.2 to 4.14.3\n\nUpdates `cachetools` from 6.2.2 to 6.2.6\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.6 (2026-01-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove typedkey performance.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor documentation improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor testing improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor code readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.5 (2026-01-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003elock\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd test cases for cache stampede scenarios.\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.2.4 (2025-12-15)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix license information displayed on PyPI be using an updated\nversion of \u003ccode\u003etwine\u003c/code\u003e for uploading.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.3 (2025-12-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003econdition\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor style and readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModernize build environment.\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/cache...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-collector-client/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-collector-client/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-01-22T11:03:24.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3842411329","node_id":"PR_kwDOMeYp8M6-q355","number":373,"state":"open","title":"Bump the python-dependencies group across 1 directory with 22 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-22T11:03:24.000Z","updated_at":"2026-01-22T11:39:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":22,"packages":[{"name":"dapla-auth-client","old_version":"1.2.1","new_version":"1.2.5","repository_url":"https://github.com/statisticsnorway/dapla-auth-client"},{"name":"gcsfs","old_version":"2025.10.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/gcsfs"},{"name":"google-auth","old_version":"2.43.0","new_version":"2.47.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"pyarrow","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.1"},{"name":"ssb-datadoc-model","old_version":"8.0.0","new_version":"8.0.3","repository_url":"https://github.com/statisticsnorway/ssb-datadoc-model"},{"name":"universal-pathlib","old_version":"0.3.6","new_version":"0.3.8","repository_url":"https://github.com/fsspec/universal_pathlib"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.7","new_version":"0.14.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"faker","old_version":"38.2.0","new_version":"40.1.2","repository_url":"https://github.com/joke2k/faker"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pandas-stubs","old_version":"2.3.3.251201","new_version":"2.3.3.260113","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"pyarrow-stubs","old_version":"20.0.0.20251107","new_version":"20.0.0.20251215","repository_url":"https://github.com/zen-xu/pyarrow-stubs"},{"name":"types-docker","old_version":"7.1.0.20251129","new_version":"7.1.0.20260109","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"80.9.0.20251223","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the python-dependencies group with 20 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [dapla-auth-client](https://github.com/statisticsnorway/dapla-auth-client) | `1.2.1` | `1.2.5` |\n| [gcsfs](https://github.com/fsspec/gcsfs) | `2025.10.0` | `2026.1.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.43.0` | `2.47.0` |\n| [pyarrow](https://github.com/apache/arrow) | `22.0.0` | `23.0.0` |\n| ruamel-yaml | `0.18.16` | `0.19.1` |\n| [ssb-datadoc-model](https://github.com/statisticsnorway/ssb-datadoc-model) | `8.0.0` | `8.0.3` |\n| [universal-pathlib](https://github.com/fsspec/universal_pathlib) | `0.3.6` | `0.3.8` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.7` | `0.14.13` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [faker](https://github.com/joke2k/faker) | `38.2.0` | `40.1.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.251201` | `2.3.3.260113` |\n| [pyarrow-stubs](https://github.com/zen-xu/pyarrow-stubs) | `20.0.0.20251107` | `20.0.0.20251215` |\n| [types-docker](https://github.com/typeshed-internal/stub_uploader) | `7.1.0.20251129` | `7.1.0.20260109` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `80.9.0.20250822` | `80.9.0.20251223` |\n\n\nUpdates `dapla-auth-client` from 1.2.1 to 1.2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/releases\"\u003edapla-auth-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.5\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate from poetry to uv build tool (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/41\"\u003e#41\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecompatibility 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e) \u003ca href=\"https://github.com/aecorn\"\u003e\u003ccode\u003e@​aecorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecompatibility 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e) \u003ca href=\"https://github.com/aecorn\"\u003e\u003ccode\u003e@​aecorn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-action-dependencies group across 1 directory with 8 updates (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/43\"\u003e#43\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump uv from 0.9.10 to 0.9.25 in /.github/workflows in the workflows-dependencies group across 1 directory (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/42\"\u003e#42\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange constraint to supporting Python 3.10 (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/39\"\u003e#39\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix dependency constraints (\u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/37\"\u003e#37\u003c/a\u003e) \u003ca href=\"https://github.com/mallport\"\u003e\u003ccode\u003e@​mallport\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/statisticsnorway/dapla-auth-client/commit/167189fbc03bbd582686aefaabf2035ff69785b5\"\u003e\u003ccode\u003e167189f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/dapla-auth-client/issues/45\"\u003e#45\u003c/a\u003e from statisticsnorway/compatibility-python-310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/4a9ef71858a52eab4e7c532207f7da3d37fb8307\"\u003e\u003ccode\u003e4a9ef71\u003c/code\u003e\u003c/a\u003e Bump release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/c7f0416bf50f5b67d5ec99a13f74e03beef45b11\"\u003e\u003ccode\u003ec7f0416\u003c/code\u003e\u003c/a\u003e uv lock aaa\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/57f3b0edf58c00d41fcea745a458de81ab64735e\"\u003e\u003ccode\u003e57f3b0e\u003c/code\u003e\u003c/a\u003e bump version of package to make release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/6ad8ca0f7102323edd53de4a7f61d7945227a8bc\"\u003e\u003ccode\u003e6ad8ca0\u003c/code\u003e\u003c/a\u003e needs uv lock man\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/3d7201084dfbef1ddc8731e6f895710936fcb2b6\"\u003e\u003ccode\u003e3d72010\u003c/code\u003e\u003c/a\u003e dont f with the lock files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/c0aee5908a23d70acf101280cb082c5195ff4444\"\u003e\u003ccode\u003ec0aee59\u003c/code\u003e\u003c/a\u003e ruff did not f up when conscious of python 3.10 in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/8726c65092c6f7e2957cbff4e0cfdb09b4b2ab72\"\u003e\u003ccode\u003e8726c65\u003c/code\u003e\u003c/a\u003e Merge branch 'compatibility-python-310' of \u003ca href=\"https://github.com/statisticsnorwa\"\u003ehttps://github.com/statisticsnorwa\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/99cfc1f573992066e3e8b622b5e1ad6d9bd11d5c\"\u003e\u003ccode\u003e99cfc1f\u003c/code\u003e\u003c/a\u003e ruff is messing mah stuff man\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/commit/1b6899658260771f43292fa7086b00229a54b2f8\"\u003e\u003ccode\u003e1b68996\u003c/code\u003e\u003c/a\u003e pre-commit mah boy\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/statisticsnorway/dapla-auth-client/compare/v1.2.1...v1.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gcsfs` from 2025.10.0 to 2026.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/3ed414aa2c5e5a78556726be11d663ff346bab40\"\u003e\u003ccode\u003e3ed414a\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/bca0139193d8dd8103fc52bfa5caf2ffd2172e6a\"\u003e\u003ccode\u003ebca0139\u003c/code\u003e\u003c/a\u003e Implement async upload methods and support async mode in ExtendedGcsfs (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/9d64f5c5c74c59c840f440f82288f047bf557a3f\"\u003e\u003ccode\u003e9d64f5c\u003c/code\u003e\u003c/a\u003e mkdir override for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/4f9f4ac35f1df42dacfb56f9be200730058fd5ef\"\u003e\u003ccode\u003e4f9f4ac\u003c/code\u003e\u003c/a\u003e reformat benchmark readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/cdd65f5808f6864bd8bed08e7bb7a9359ab0cbe7\"\u003e\u003ccode\u003ecdd65f5\u003c/code\u003e\u003c/a\u003e Adds GCSFS Microbenchmarks (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c8ed96a77d027115b436cd9062825f703955b891\"\u003e\u003ccode\u003ec8ed96a\u003c/code\u003e\u003c/a\u003e ✨ Support alternative GCP Universes (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/e03bf2949664282d4eb09ba18c62a2d98085cba9\"\u003e\u003ccode\u003ee03bf29\u003c/code\u003e\u003c/a\u003e Override info for hns (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/14276d82827f21c1ee6b736ff7896ae4211cc726\"\u003e\u003ccode\u003e14276d8\u003c/code\u003e\u003c/a\u003e Update ci pipeline to run tests on HNS bucket (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c5ac0e3e65154d4d5ec1d1de1566a7b1ea7781d3\"\u003e\u003ccode\u003ec5ac0e3\u003c/code\u003e\u003c/a\u003e feat(zb-write): Support write mode in Zonal File (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/06399c09003b66292bf25206e500796a8855ce72\"\u003e\u003ccode\u003e06399c0\u003c/code\u003e\u003c/a\u003e Adds mv/rename method implementation for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2025.10.0...2026.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.43.0 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.47.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4\"\u003e5c07e1c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc2001\"\u003e60dc2001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.46.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d5\"\u003e0b9107d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631\"\u003e02e71631\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f\"\u003e12f4470f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588\"\u003e59a5f588\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d001470\"\u003e5d001470\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e09\"\u003e94d04e09\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531c\"\u003ec767531c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2\"\u003e3f1aeea2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\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/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588f7793b59d923a4185c8c07738da618f7\"\u003e59a5f588f7793b59d923a4185c8c07738da618f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d0014707fc359782df5ccfcaa75fd372fe9dce3\"\u003e5d0014707fc359782df5ccfcaa75fd372fe9dce3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531ce05a89002d109f595187aff1fcaacfb7\"\u003ec767531ce05a89002d109f595187aff1fcaacfb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f808809e8abf1141f98d88ab720c3899b\"\u003e12f4470f808809e8abf1141f98d88ab720c3899b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e090fdfc61926dd32bc1d65f8820b9cede5\"\u003e94d04e090fdfc61926dd32bc1d65f8820b9cede5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631fe275d93825c2e957e830773e75133f7\"\u003e02e71631fe275d93825c2e957e830773e75133f7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\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/googleapis/google-auth-library-python/commit/f32301a03372eb72a8b5542a4cc223e01ee1e33b\"\u003e\u003ccode\u003ef32301a\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260106T130342Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25f4ca658c1880c7a27ed817ded4c17d84c26854\"\u003e\u003ccode\u003e25f4ca6\u003c/code\u003e\u003c/a\u003e chore: remove Python 3.7 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e\u003ccode\u003e60dc200\u003c/code\u003e\u003c/a\u003e fix: Python 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e\u003ccode\u003e5c07e1c\u003c/code\u003e\u003c/a\u003e feat: drop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2cbc2a2e2e75e8797bf3709eb1e624ad39e7e7d4\"\u003e\u003ccode\u003e2cbc2a2\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260105T122553Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5b7b5d83adafe275351989a96328472b1845c4be\"\u003e\u003ccode\u003e5b7b5d8\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260105T112538Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/7dbf05a56c5c8f1c01f985af140dc8c5ea29656a\"\u003e\u003ccode\u003e7dbf05a\u003c/code\u003e\u003c/a\u003e chore: rename _refresh_token to _perform_refresh_token (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1900\"\u003e#1900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/855a45af913a5d099e30036b80d8ba3b0c324a62\"\u003e\u003ccode\u003e855a45a\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1894\"\u003e#1894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/77c8bc48b5638cbe8c4415fdd378853e9db6e156\"\u003e\u003ccode\u003e77c8bc4\u003c/code\u003e\u003c/a\u003e tests: make the TLS tests skip when pyopenssl isn't available (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1873\"\u003e#1873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e\u003ccode\u003e0b9107d\u003c/code\u003e\u003c/a\u003e feat: Recognize workload certificate config in has_default_client_cert_source...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 23.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/23.0.0.html\"\u003ehttps://arrow.apache.org/release/23.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 23.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 23.0.0 RC2\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/apache/arrow/commit/eafe3a9e620cf94683dee2347f370c35156dc965\"\u003e\u003ccode\u003eeafe3a9\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/45781e854cc9248013349decc4639644871d9f5f\"\u003e\u003ccode\u003e45781e8\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/365e5aca5a1ae2cdc31e6bd4ed640bfba00d5cc5\"\u003e\u003ccode\u003e365e5ac\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e33512d1d82c28e753004d0d7a76c1dca542b1cd\"\u003e\u003ccode\u003ee33512d\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48841\"\u003eGH-48841\u003c/a\u003e: [Release][Package] Add GH_TOKEN to rake build step on Linux Packagi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/86d28e9d55f8d0f11634b4a2a19233fa843d9261\"\u003e\u003ccode\u003e86d28e9\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48838\"\u003eGH-48838\u003c/a\u003e: [Release] Use gh cli to download sources for Linux packages and pub...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b6362d09204136dbf2167fee8ec8ec2af0efe42d\"\u003e\u003ccode\u003eb6362d0\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48582\"\u003eGH-48582\u003c/a\u003e: [CI][GPU][C++][Python] Add new CUDA jobs using the new self-hosted ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8fb7a53f0e2d0fa85ccdc6dd7ccda44dec6ee0d9\"\u003e\u003ccode\u003e8fb7a53\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48827\"\u003eGH-48827\u003c/a\u003e: [CI][Python] Add required xz dependency to emscripten dockerfile (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/342c5d563005709eab03dde332e44bcb237385fc\"\u003e\u003ccode\u003e342c5d5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48809\"\u003eGH-48809\u003c/a\u003e: [CI] Fix homebrew-cpp with Mac by using formula-based dependency re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8955bbf7b266d7e293f5037bd20c3e2e983e004c\"\u003e\u003ccode\u003e8955bbf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48631\"\u003eGH-48631\u003c/a\u003e: [R] Non-API calls: 'ATTRIB', 'SET_ATTRIB' (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48634\"\u003e#48634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b90a2b82d85b1479470b7f1bdd941c9a59ecd3d4\"\u003e\u003ccode\u003eb90a2b8\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48314\"\u003eGH-48314\u003c/a\u003e: [Python] Compat with pandas 3.0 changed default datetime unit (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48319\"\u003e#48319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-22.0.0...apache-arrow-23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruamel-yaml` from 0.18.16 to 0.19.1\n\nUpdates `ssb-datadoc-model` from 8.0.0 to 8.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/releases\"\u003essb-datadoc-model's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-v8.0.3\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:notebook: Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump document version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/70\"\u003e#70\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove fields from dataset to variable level (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/69\"\u003e#69\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization_time from variables into pseudo object (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/65\"\u003e#65\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:snake: Python\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease Python v8.0.0 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/73\"\u003e#73\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump document version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/70\"\u003e#70\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove fields from dataset to variable level (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/69\"\u003e#69\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly warn deprecation when relevant (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/68\"\u003e#68\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version 7.0.0 -\u0026gt; 7.0.1 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/66\"\u003e#66\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization_time from variables into pseudo object (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/65\"\u003e#65\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect project metadata (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/63\"\u003e#63\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:rocket: Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-v8.0.2\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:notebook: Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\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/statisticsnorway/ssb-datadoc-model/commit/a04b301d3615cfe0db25c82170cee401810f99a6\"\u003e\u003ccode\u003ea04b301\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e from statisticsnorway/fix/fix-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/2d21418bc6b3094cf210ad421f5903cd9e46f971\"\u003e\u003ccode\u003e2d21418\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/9b6487e0dafd6503b2a7efaa31923489d97c9195\"\u003e\u003ccode\u003e9b6487e\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/39e0c73e24619bcde538c7562ee219e3307a3891\"\u003e\u003ccode\u003e39e0c73\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/61c924f4a331ac18701a02ad04230abfe41a0263\"\u003e\u003ccode\u003e61c924f\u003c/code\u003e\u003c/a\u003e Revert formatting of stable_identifier_version to date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/6216bfea619447e019f3f9cdb42518c4c5ca0973\"\u003e\u003ccode\u003e6216bfe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e from statisticsnorway/release/v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/838739f8331ba74c70e93d5365c17e3d6ef24ab7\"\u003e\u003ccode\u003e838739f\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/1d670b98c595a9def4104851f3717d0c38bc06c9\"\u003e\u003ccode\u003e1d670b9\u003c/code\u003e\u003c/a\u003e v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/1174a50159039f800e549cbdc82da341549a8dbb\"\u003e\u003ccode\u003e1174a50\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e from statisticsnorway/fix/stable-id-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/16318d82bfe0c56ec23dad821e7bf97599f83bf8\"\u003e\u003ccode\u003e16318d8\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/compare/v8.0.0...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `universal-pathlib` from 0.3.6 to 0.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fsspec/universal_pathlib/releases\"\u003euniversal-pathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump the pip-dependencies group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/501\"\u003efsspec/universal_pathlib#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: describe UPath/s3fs behavior with \u003ccode\u003eis_dir()\u003c/code\u003e by \u003ca href=\"https://github.com/lagamura\"\u003e\u003ccode\u003e@​lagamura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/503\"\u003efsspec/universal_pathlib#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not hardcode Python executable name by \u003ca href=\"https://github.com/avalentino\"\u003e\u003ccode\u003e@​avalentino\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/504\"\u003efsspec/universal_pathlib#504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: remove two unused helper functions introduced in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/505\"\u003efsspec/universal_pathlib#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix iterdir behaviour when raising NotADirectory for all UPath subclasses by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/506\"\u003efsspec/universal_pathlib#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error behavior for the hardlink_to backport and symlink_to for upath.extensions by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/508\"\u003efsspec/universal_pathlib#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitHub tests without a network connection by \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/509\"\u003efsspec/universal_pathlib#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: split base test cases into joinable/readable/writable tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/507\"\u003efsspec/universal_pathlib#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix is_relative_to for extensions by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/510\"\u003efsspec/universal_pathlib#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing pathlib abc tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/511\"\u003efsspec/universal_pathlib#511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit test suite according to abcs by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/513\"\u003efsspec/universal_pathlib#513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix upath core touch by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/515\"\u003efsspec/universal_pathlib#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandover fs instance in UPath.with_segments() if possible by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/516\"\u003efsspec/universal_pathlib#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix DataPath error handling for unsupported methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/517\"\u003efsspec/universal_pathlib#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix HTTPPath error handling for unsupported methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/518\"\u003efsspec/universal_pathlib#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.tar: fix error handling for write methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/519\"\u003efsspec/universal_pathlib#519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.zip: disable write mode in universal-pathlib by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/520\"\u003efsspec/universal_pathlib#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.cloud: fix error handling on HfPath by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/521\"\u003efsspec/universal_pathlib#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.github: adjust GitHubPath error reporting by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/522\"\u003efsspec/universal_pathlib#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor and cleanup test suite by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/514\"\u003efsspec/universal_pathlib#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: xfail on name resolution error in github suite by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/523\"\u003efsspec/universal_pathlib#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix behaviour of UPath.parent and UPath.parents by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/529\"\u003efsspec/universal_pathlib#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust behavior of UPath.copy and UPath.copy_into with str and Path targets by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/530\"\u003efsspec/universal_pathlib#530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix S3Path copy to Local: name collision of file / dir by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/533\"\u003efsspec/universal_pathlib#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecut release 0.3.8 by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/534\"\u003efsspec/universal_pathlib#534\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/lagamura\"\u003e\u003ccode\u003e@​lagamura\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/503\"\u003efsspec/universal_pathlib#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avalentino\"\u003e\u003ccode\u003e@​avalentino\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/504\"\u003efsspec/universal_pathlib#504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/509\"\u003efsspec/universal_pathlib#509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8\"\u003ehttps://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.3.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typing example in README by \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/484\"\u003efsspec/universal_pathlib#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd FTPPath implementation by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/485\"\u003efsspec/universal_pathlib#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath: fix maintainer display on pypi by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/486\"\u003efsspec/universal_pathlib#486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch and assert warnings in tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/487\"\u003efsspec/universal_pathlib#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix trailing slash behavior by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/488\"\u003efsspec/universal_pathlib#488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTests without network connection by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/492\"\u003efsspec/universal_pathlib#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire .cwd() for relative paths in .rename() by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/493\"\u003efsspec/universal_pathlib#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MemoryPath root by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/495\"\u003efsspec/universal_pathlib#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.core: deprecate keyword arguments for UPath.rename() by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/496\"\u003efsspec/universal_pathlib#496\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/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/484\"\u003efsspec/universal_pathlib#484\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/fsspec/universal_pathlib/blob/main/CHANGELOG.md\"\u003euniversal-pathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.3.8] - 2026-01-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003etests: add missing pathlib abc tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: split base test cases into joinable/readable/writable tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: describe UPath/s3fs behavior with \u003ccode\u003eis_dir()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath.implementations.cloud: fix S3Path copy to local with name collision of file/dir (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fix behaviour of \u003ccode\u003eUPath.parent\u003c/code\u003e and \u003ccode\u003eUPath.parents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.github: adjust GitHubPath error reporting (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.cloud: fix error handling on HfPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.zip: disable write mode in universal-pathlib (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.tar: fix error handling for write methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.http: fix HTTPPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.data: fix DataPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fix \u003ccode\u003etouch()\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix \u003ccode\u003eis_relative_to()\u003c/code\u003e for extensions (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix error behavior for \u003ccode\u003ehardlink_to()\u003c/code\u003e backport and \u003ccode\u003esymlink_to()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath: fix \u003ccode\u003eiterdir()\u003c/code\u003e behaviour when raising NotADirectoryError for all UPath subclasses (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: xfail on name resolution error in github suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: fix GitHub tests without a network connection (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath: adjust behavior of \u003ccode\u003eUPath.copy()\u003c/code\u003e and \u003ccode\u003eUPath.copy_into()\u003c/code\u003e with str and Path targets (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: handover cached fs instances in \u003ccode\u003ewith_segments()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: split test suite according to abcs and cleanup tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: remove two unused helper functions introduced in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: do not hardcode Python executable name (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: updated development dependencies (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.7] - 2025-12-03\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath.implementations.ftp: added FTPPath support (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: added comprehensive warning checks in test suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: added xfail handling for network connectivity issues (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath: fixed trailing slash behavior for cloud paths (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fixed rename implementation for relative paths (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.memory: fixed MemoryPath root (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.ftp: added support for FTP modification time info format (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.local: fixed rename return type on Python 3.14+ (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fixed .cwd() behavior for ProxyUPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fixed typing of .cwd() method (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: fixed typing example in README (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/484\"\u003e#484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epypi: fixed maintainer display on PyPI (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\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/fsspec/universal_pathlib/commit/89d2e6d8fa0fa0b9dec6c1dcb0928c051ea6ca9f\"\u003e\u003ccode\u003e89d2e6d\u003c/code\u003e\u003c/a\u003e cut release 0.3.8 (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/c4c1fe317dc71b069697ab597d76a28aa8cf0e57\"\u003e\u003ccode\u003ec4c1fe3\u003c/code\u003e\u003c/a\u003e Fix S3Path copy to Local: name collision of file / dir (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/9ceaf2f2c3a00475eeb46c7ccfd6d43152a0d6f6\"\u003e\u003ccode\u003e9ceaf2f\u003c/code\u003e\u003c/a\u003e Adjust behavior of UPath.copy and UPath.copy_into with str and Path targets (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/4ff77c729626dfd2ebe6caed8ac52260c62d2145\"\u003e\u003ccode\u003e4ff77c7\u003c/code\u003e\u003c/a\u003e Fix behaviour of UPath.parent and UPath.parents (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/fb7703d7883e5bdc5f3eda6caab3a7b974dd806e\"\u003e\u003ccode\u003efb7703d\u003c/code\u003e\u003c/a\u003e tests: xfail on name resolution error in github suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/3fd061c3ff98d0659f722be7617b50703a4a3052\"\u003e\u003ccode\u003e3fd061c\u003c/code\u003e\u003c/a\u003e upath.implementations.github: adjust GitHubPath error reporting (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/ef8888af5260b0e16566c6c4ff9ecd392eafc8d4\"\u003e\u003ccode\u003eef8888a\u003c/code\u003e\u003c/a\u003e upath.implementations.cloud: fix error handling on HfPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/043248d87e2c07bad244185f64cae4a27c683ae6\"\u003e\u003ccode\u003e043248d\u003c/code\u003e\u003c/a\u003e upath.implementations.zip: disable write mode in universal-pathlib (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/f9d9445c4b7dc16e5b374db12d7076e3439e5e5c\"\u003e\u003ccode\u003ef9d9445\u003c/code\u003e\u003c/a\u003e upath.implementations.tar: fix error handling for write methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/22e598a145c10c5baf17cbe7919c6e5da0d28f13\"\u003e\u003ccode\u003e22e598a\u003c/code\u003e\u003c/a\u003e Fix HTTPPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/universal_pathlib/compare/v0.3.6...v0.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/l...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/dapla-toolbelt-metadata/pull/373","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fdapla-toolbelt-metadata/issues/373","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/373/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-01-13T09:05:45.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3807882745","node_id":"PR_kwDOMeYp8M684V46","number":363,"state":"open","title":"Bump the python-dependencies group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-13T09:05:45.000Z","updated_at":"2026-01-21T08:53:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":19,"packages":[{"name":"gcsfs","old_version":"2025.10.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/gcsfs"},{"name":"google-auth","old_version":"2.43.0","new_version":"2.47.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.1"},{"name":"ssb-datadoc-model","old_version":"8.0.0","new_version":"8.0.3","repository_url":"https://github.com/statisticsnorway/ssb-datadoc-model"},{"name":"universal-pathlib","old_version":"0.3.6","new_version":"0.3.8","repository_url":"https://github.com/fsspec/universal_pathlib"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.7","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"faker","old_version":"38.2.0","new_version":"40.1.0","repository_url":"https://github.com/joke2k/faker"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pandas-stubs","old_version":"2.3.3.251201","new_version":"2.3.3.251219","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"pyarrow-stubs","old_version":"20.0.0.20251107","new_version":"20.0.0.20251215","repository_url":"https://github.com/zen-xu/pyarrow-stubs"},{"name":"types-docker","old_version":"7.1.0.20251129","new_version":"7.1.0.20260109","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"80.9.0.20251223","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gcsfs](https://github.com/fsspec/gcsfs) | `2025.10.0` | `2026.1.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.43.0` | `2.47.0` |\n| ruamel-yaml | `0.18.16` | `0.19.1` |\n| [ssb-datadoc-model](https://github.com/statisticsnorway/ssb-datadoc-model) | `8.0.0` | `8.0.3` |\n| [universal-pathlib](https://github.com/fsspec/universal_pathlib) | `0.3.6` | `0.3.8` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.7` | `0.14.11` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [faker](https://github.com/joke2k/faker) | `38.2.0` | `40.1.0` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.251201` | `2.3.3.251219` |\n| [pyarrow-stubs](https://github.com/zen-xu/pyarrow-stubs) | `20.0.0.20251107` | `20.0.0.20251215` |\n| [types-docker](https://github.com/typeshed-internal/stub_uploader) | `7.1.0.20251129` | `7.1.0.20260109` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `80.9.0.20250822` | `80.9.0.20251223` |\n\n\nUpdates `gcsfs` from 2025.10.0 to 2026.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/3ed414aa2c5e5a78556726be11d663ff346bab40\"\u003e\u003ccode\u003e3ed414a\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/bca0139193d8dd8103fc52bfa5caf2ffd2172e6a\"\u003e\u003ccode\u003ebca0139\u003c/code\u003e\u003c/a\u003e Implement async upload methods and support async mode in ExtendedGcsfs (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/9d64f5c5c74c59c840f440f82288f047bf557a3f\"\u003e\u003ccode\u003e9d64f5c\u003c/code\u003e\u003c/a\u003e mkdir override for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/4f9f4ac35f1df42dacfb56f9be200730058fd5ef\"\u003e\u003ccode\u003e4f9f4ac\u003c/code\u003e\u003c/a\u003e reformat benchmark readme\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/cdd65f5808f6864bd8bed08e7bb7a9359ab0cbe7\"\u003e\u003ccode\u003ecdd65f5\u003c/code\u003e\u003c/a\u003e Adds GCSFS Microbenchmarks (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c8ed96a77d027115b436cd9062825f703955b891\"\u003e\u003ccode\u003ec8ed96a\u003c/code\u003e\u003c/a\u003e ✨ Support alternative GCP Universes (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/e03bf2949664282d4eb09ba18c62a2d98085cba9\"\u003e\u003ccode\u003ee03bf29\u003c/code\u003e\u003c/a\u003e Override info for hns (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/14276d82827f21c1ee6b736ff7896ae4211cc726\"\u003e\u003ccode\u003e14276d8\u003c/code\u003e\u003c/a\u003e Update ci pipeline to run tests on HNS bucket (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c5ac0e3e65154d4d5ec1d1de1566a7b1ea7781d3\"\u003e\u003ccode\u003ec5ac0e3\u003c/code\u003e\u003c/a\u003e feat(zb-write): Support write mode in Zonal File (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/06399c09003b66292bf25206e500796a8855ce72\"\u003e\u003ccode\u003e06399c0\u003c/code\u003e\u003c/a\u003e Adds mv/rename method implementation for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2025.10.0...2026.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.43.0 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.47.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4\"\u003e5c07e1c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc2001\"\u003e60dc2001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.46.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d5\"\u003e0b9107d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631\"\u003e02e71631\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f\"\u003e12f4470f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588\"\u003e59a5f588\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d001470\"\u003e5d001470\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e09\"\u003e94d04e09\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531c\"\u003ec767531c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2\"\u003e3f1aeea2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\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/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588f7793b59d923a4185c8c07738da618f7\"\u003e59a5f588f7793b59d923a4185c8c07738da618f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d0014707fc359782df5ccfcaa75fd372fe9dce3\"\u003e5d0014707fc359782df5ccfcaa75fd372fe9dce3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531ce05a89002d109f595187aff1fcaacfb7\"\u003ec767531ce05a89002d109f595187aff1fcaacfb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f808809e8abf1141f98d88ab720c3899b\"\u003e12f4470f808809e8abf1141f98d88ab720c3899b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e090fdfc61926dd32bc1d65f8820b9cede5\"\u003e94d04e090fdfc61926dd32bc1d65f8820b9cede5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631fe275d93825c2e957e830773e75133f7\"\u003e02e71631fe275d93825c2e957e830773e75133f7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\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/googleapis/google-auth-library-python/commit/f32301a03372eb72a8b5542a4cc223e01ee1e33b\"\u003e\u003ccode\u003ef32301a\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260106T130342Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25f4ca658c1880c7a27ed817ded4c17d84c26854\"\u003e\u003ccode\u003e25f4ca6\u003c/code\u003e\u003c/a\u003e chore: remove Python 3.7 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e\u003ccode\u003e60dc200\u003c/code\u003e\u003c/a\u003e fix: Python 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e\u003ccode\u003e5c07e1c\u003c/code\u003e\u003c/a\u003e feat: drop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2cbc2a2e2e75e8797bf3709eb1e624ad39e7e7d4\"\u003e\u003ccode\u003e2cbc2a2\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260105T122553Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5b7b5d83adafe275351989a96328472b1845c4be\"\u003e\u003ccode\u003e5b7b5d8\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260105T112538Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/7dbf05a56c5c8f1c01f985af140dc8c5ea29656a\"\u003e\u003ccode\u003e7dbf05a\u003c/code\u003e\u003c/a\u003e chore: rename _refresh_token to _perform_refresh_token (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1900\"\u003e#1900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/855a45af913a5d099e30036b80d8ba3b0c324a62\"\u003e\u003ccode\u003e855a45a\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1894\"\u003e#1894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/77c8bc48b5638cbe8c4415fdd378853e9db6e156\"\u003e\u003ccode\u003e77c8bc4\u003c/code\u003e\u003c/a\u003e tests: make the TLS tests skip when pyopenssl isn't available (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1873\"\u003e#1873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e\u003ccode\u003e0b9107d\u003c/code\u003e\u003c/a\u003e feat: Recognize workload certificate config in has_default_client_cert_source...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruamel-yaml` from 0.18.16 to 0.19.1\n\nUpdates `ssb-datadoc-model` from 8.0.0 to 8.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/releases\"\u003essb-datadoc-model's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-v8.0.3\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:notebook: Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump document version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/70\"\u003e#70\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove fields from dataset to variable level (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/69\"\u003e#69\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization_time from variables into pseudo object (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/65\"\u003e#65\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:snake: Python\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease Python v8.0.0 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/73\"\u003e#73\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump document version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/70\"\u003e#70\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove fields from dataset to variable level (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/69\"\u003e#69\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly warn deprecation when relevant (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/68\"\u003e#68\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version 7.0.0 -\u0026gt; 7.0.1 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/66\"\u003e#66\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization_time from variables into pseudo object (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/65\"\u003e#65\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect project metadata (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/63\"\u003e#63\u003c/a\u003e) \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:rocket: Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove date formatting on stable_identifier_version (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove pseudonymization metadata into Variable structure (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/64\"\u003e#64\u003c/a\u003e) \u003ca href=\"https://github.com/skykanin\"\u003e\u003ccode\u003e@​skykanin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-v8.0.2\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:notebook: Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ev8.0.2 (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStable identifier version is a date (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate use restriction (\u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/72\"\u003e#72\u003c/a\u003e) \u003ca href=\"https://github.com/Jorgen-5\"\u003e\u003ccode\u003e@​Jorgen-5\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/statisticsnorway/ssb-datadoc-model/commit/a04b301d3615cfe0db25c82170cee401810f99a6\"\u003e\u003ccode\u003ea04b301\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/81\"\u003e#81\u003c/a\u003e from statisticsnorway/fix/fix-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/2d21418bc6b3094cf210ad421f5903cd9e46f971\"\u003e\u003ccode\u003e2d21418\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/9b6487e0dafd6503b2a7efaa31923489d97c9195\"\u003e\u003ccode\u003e9b6487e\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/39e0c73e24619bcde538c7562ee219e3307a3891\"\u003e\u003ccode\u003e39e0c73\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/61c924f4a331ac18701a02ad04230abfe41a0263\"\u003e\u003ccode\u003e61c924f\u003c/code\u003e\u003c/a\u003e Revert formatting of stable_identifier_version to date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/6216bfea619447e019f3f9cdb42518c4c5ca0973\"\u003e\u003ccode\u003e6216bfe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/80\"\u003e#80\u003c/a\u003e from statisticsnorway/release/v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/838739f8331ba74c70e93d5365c17e3d6ef24ab7\"\u003e\u003ccode\u003e838739f\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/1d670b98c595a9def4104851f3717d0c38bc06c9\"\u003e\u003ccode\u003e1d670b9\u003c/code\u003e\u003c/a\u003e v8.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/1174a50159039f800e549cbdc82da341549a8dbb\"\u003e\u003ccode\u003e1174a50\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/statisticsnorway/ssb-datadoc-model/issues/79\"\u003e#79\u003c/a\u003e from statisticsnorway/fix/stable-id-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/commit/16318d82bfe0c56ec23dad821e7bf97599f83bf8\"\u003e\u003ccode\u003e16318d8\u003c/code\u003e\u003c/a\u003e [GENERATE] Pydantic models from JSON Schema\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/statisticsnorway/ssb-datadoc-model/compare/v8.0.0...v8.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `universal-pathlib` from 0.3.6 to 0.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fsspec/universal_pathlib/releases\"\u003euniversal-pathlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump the pip-dependencies group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/501\"\u003efsspec/universal_pathlib#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: describe UPath/s3fs behavior with \u003ccode\u003eis_dir()\u003c/code\u003e by \u003ca href=\"https://github.com/lagamura\"\u003e\u003ccode\u003e@​lagamura\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/503\"\u003efsspec/universal_pathlib#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not hardcode Python executable name by \u003ca href=\"https://github.com/avalentino\"\u003e\u003ccode\u003e@​avalentino\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/504\"\u003efsspec/universal_pathlib#504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: remove two unused helper functions introduced in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/505\"\u003efsspec/universal_pathlib#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix iterdir behaviour when raising NotADirectory for all UPath subclasses by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/506\"\u003efsspec/universal_pathlib#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error behavior for the hardlink_to backport and symlink_to for upath.extensions by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/508\"\u003efsspec/universal_pathlib#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitHub tests without a network connection by \u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/509\"\u003efsspec/universal_pathlib#509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: split base test cases into joinable/readable/writable tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/507\"\u003efsspec/universal_pathlib#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix is_relative_to for extensions by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/510\"\u003efsspec/universal_pathlib#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing pathlib abc tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/511\"\u003efsspec/universal_pathlib#511\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit test suite according to abcs by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/513\"\u003efsspec/universal_pathlib#513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix upath core touch by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/515\"\u003efsspec/universal_pathlib#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandover fs instance in UPath.with_segments() if possible by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/516\"\u003efsspec/universal_pathlib#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix DataPath error handling for unsupported methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/517\"\u003efsspec/universal_pathlib#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix HTTPPath error handling for unsupported methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/518\"\u003efsspec/universal_pathlib#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.tar: fix error handling for write methods by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/519\"\u003efsspec/universal_pathlib#519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.zip: disable write mode in universal-pathlib by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/520\"\u003efsspec/universal_pathlib#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.cloud: fix error handling on HfPath by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/521\"\u003efsspec/universal_pathlib#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.implementations.github: adjust GitHubPath error reporting by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/522\"\u003efsspec/universal_pathlib#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor and cleanup test suite by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/514\"\u003efsspec/universal_pathlib#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: xfail on name resolution error in github suite by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/523\"\u003efsspec/universal_pathlib#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix behaviour of UPath.parent and UPath.parents by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/529\"\u003efsspec/universal_pathlib#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust behavior of UPath.copy and UPath.copy_into with str and Path targets by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/530\"\u003efsspec/universal_pathlib#530\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix S3Path copy to Local: name collision of file / dir by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/533\"\u003efsspec/universal_pathlib#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecut release 0.3.8 by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/534\"\u003efsspec/universal_pathlib#534\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/lagamura\"\u003e\u003ccode\u003e@​lagamura\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/503\"\u003efsspec/universal_pathlib#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avalentino\"\u003e\u003ccode\u003e@​avalentino\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/504\"\u003efsspec/universal_pathlib#504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/QuLogic\"\u003e\u003ccode\u003e@​QuLogic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/509\"\u003efsspec/universal_pathlib#509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8\"\u003ehttps://github.com/fsspec/universal_pathlib/compare/v0.3.7...v0.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.3.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typing example in README by \u003ca href=\"https://github.com/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/484\"\u003efsspec/universal_pathlib#484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd FTPPath implementation by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/485\"\u003efsspec/universal_pathlib#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath: fix maintainer display on pypi by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/486\"\u003efsspec/universal_pathlib#486\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch and assert warnings in tests by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/487\"\u003efsspec/universal_pathlib#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix trailing slash behavior by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/488\"\u003efsspec/universal_pathlib#488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTests without network connection by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/492\"\u003efsspec/universal_pathlib#492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire .cwd() for relative paths in .rename() by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/493\"\u003efsspec/universal_pathlib#493\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MemoryPath root by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/495\"\u003efsspec/universal_pathlib#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupath.core: deprecate keyword arguments for UPath.rename() by \u003ca href=\"https://github.com/ap\"\u003e\u003ccode\u003e@​ap\u003c/code\u003e\u003c/a\u003e-- in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/496\"\u003efsspec/universal_pathlib#496\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/mmwinther\"\u003e\u003ccode\u003e@​mmwinther\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/pull/484\"\u003efsspec/universal_pathlib#484\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/fsspec/universal_pathlib/blob/main/CHANGELOG.md\"\u003euniversal-pathlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.3.8] - 2026-01-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003etests: add missing pathlib abc tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: split base test cases into joinable/readable/writable tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: describe UPath/s3fs behavior with \u003ccode\u003eis_dir()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath.implementations.cloud: fix S3Path copy to local with name collision of file/dir (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fix behaviour of \u003ccode\u003eUPath.parent\u003c/code\u003e and \u003ccode\u003eUPath.parents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.github: adjust GitHubPath error reporting (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.cloud: fix error handling on HfPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.zip: disable write mode in universal-pathlib (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.tar: fix error handling for write methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.http: fix HTTPPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.data: fix DataPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fix \u003ccode\u003etouch()\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix \u003ccode\u003eis_relative_to()\u003c/code\u003e for extensions (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fix error behavior for \u003ccode\u003ehardlink_to()\u003c/code\u003e backport and \u003ccode\u003esymlink_to()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath: fix \u003ccode\u003eiterdir()\u003c/code\u003e behaviour when raising NotADirectoryError for all UPath subclasses (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: xfail on name resolution error in github suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: fix GitHub tests without a network connection (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath: adjust behavior of \u003ccode\u003eUPath.copy()\u003c/code\u003e and \u003ccode\u003eUPath.copy_into()\u003c/code\u003e with str and Path targets (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: handover cached fs instances in \u003ccode\u003ewith_segments()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: split test suite according to abcs and cleanup tests (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: remove two unused helper functions introduced in \u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: do not hardcode Python executable name (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: updated development dependencies (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.7] - 2025-12-03\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath.implementations.ftp: added FTPPath support (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: added comprehensive warning checks in test suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etests: added xfail handling for network connectivity issues (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/492\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupath: fixed trailing slash behavior for cloud paths (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.core: fixed rename implementation for relative paths (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.memory: fixed MemoryPath root (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/495\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.ftp: added support for FTP modification time info format (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.implementations.local: fixed rename return type on Python 3.14+ (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fixed .cwd() behavior for ProxyUPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupath.extensions: fixed typing of .cwd() method (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/493\"\u003e#493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: fixed typing example in README (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/484\"\u003e#484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003epypi: fixed maintainer display on PyPI (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\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/fsspec/universal_pathlib/commit/89d2e6d8fa0fa0b9dec6c1dcb0928c051ea6ca9f\"\u003e\u003ccode\u003e89d2e6d\u003c/code\u003e\u003c/a\u003e cut release 0.3.8 (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/c4c1fe317dc71b069697ab597d76a28aa8cf0e57\"\u003e\u003ccode\u003ec4c1fe3\u003c/code\u003e\u003c/a\u003e Fix S3Path copy to Local: name collision of file / dir (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/9ceaf2f2c3a00475eeb46c7ccfd6d43152a0d6f6\"\u003e\u003ccode\u003e9ceaf2f\u003c/code\u003e\u003c/a\u003e Adjust behavior of UPath.copy and UPath.copy_into with str and Path targets (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/4ff77c729626dfd2ebe6caed8ac52260c62d2145\"\u003e\u003ccode\u003e4ff77c7\u003c/code\u003e\u003c/a\u003e Fix behaviour of UPath.parent and UPath.parents (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/fb7703d7883e5bdc5f3eda6caab3a7b974dd806e\"\u003e\u003ccode\u003efb7703d\u003c/code\u003e\u003c/a\u003e tests: xfail on name resolution error in github suite (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/3fd061c3ff98d0659f722be7617b50703a4a3052\"\u003e\u003ccode\u003e3fd061c\u003c/code\u003e\u003c/a\u003e upath.implementations.github: adjust GitHubPath error reporting (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/ef8888af5260b0e16566c6c4ff9ecd392eafc8d4\"\u003e\u003ccode\u003eef8888a\u003c/code\u003e\u003c/a\u003e upath.implementations.cloud: fix error handling on HfPath (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/043248d87e2c07bad244185f64cae4a27c683ae6\"\u003e\u003ccode\u003e043248d\u003c/code\u003e\u003c/a\u003e upath.implementations.zip: disable write mode in universal-pathlib (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/f9d9445c4b7dc16e5b374db12d7076e3439e5e5c\"\u003e\u003ccode\u003ef9d9445\u003c/code\u003e\u003c/a\u003e upath.implementations.tar: fix error handling for write methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/universal_pathlib/commit/22e598a145c10c5baf17cbe7919c6e5da0d28f13\"\u003e\u003ccode\u003e22e598a\u003c/code\u003e\u003c/a\u003e Fix HTTPPath error handling for unsupported methods (\u003ca href=\"https://redirect.github.com/fsspec/universal_pathlib/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/universal_pathlib/compare/v0.3.6...v0.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.7 to 0.14.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/dapla-toolbelt-metadata/pull/363","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fdapla-toolbelt-metadata/issues/363","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/363/packages"}},{"old_version":"6.0.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-01-08T17:20:39.000Z","version_change":"6.0.0 → 6.2.0","issue":{"uuid":"3793728220","node_id":"PR_kwDOO_6LKs68KjBC","number":18,"state":"closed","title":"chore(deps): bump the poetry-dependencies group across 1 directory with 69 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T04:42:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-08T17:20:39.000Z","updated_at":"2026-02-01T04:42:39.000Z","time_to_close":2028118,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry-dependencies","update_count":69,"packages":[{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"scipy","old_version":"1.16.0","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"gmsh","old_version":"4.14.0","new_version":"4.15.0"},{"name":"pyvista","old_version":"0.46.2","new_version":"0.46.4","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pypardiso","old_version":"0.4.6","new_version":"0.4.7","repository_url":"https://github.com/haasad/PyPardiso"},{"name":"pyside6","old_version":"6.9.2","new_version":"6.10.1"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.16.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","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.0","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx","old_version":"8.1.3","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"3.0.1","new_version":"3.5.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.2.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":"anyio","old_version":"4.9.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.6.15","new_version":"2026.1.4","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.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.20.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.12","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"intel-openmp","old_version":"2025.2.1","new_version":"2025.3.1"},{"name":"ipython","old_version":"8.37.0","new_version":"9.9.0","repository_url":"https://github.com/ipython/ipython"},{"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-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mkl","old_version":"2025.2.0","new_version":"2025.3.0","repository_url":"https://github.com/uxlfoundation/oneMath"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pathspec","old_version":"0.12.1","new_version":"1.0.2","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.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":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pyinstaller-hooks-contrib","old_version":"2025.10","new_version":"2025.11","repository_url":"https://github.com/pyinstaller/pyinstaller-hooks-contrib"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.1.0","new_version":"14.2.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"scooby","old_version":"0.10.1","new_version":"0.11.0","repository_url":"https://github.com/banesullivan/scooby"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tbb","old_version":"2022.2.0","new_version":"2022.3.0","repository_url":"https://github.com/oneapi-src/oneTBB"},{"name":"tcmlib","old_version":"1.4.0","new_version":"1.4.1"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.31.2","new_version":"20.36.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"vtk","old_version":"9.5.0","new_version":"9.5.2"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"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 65 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.0` | `1.16.3` |\n| [gmsh](https://gmsh.info) | `4.14.0` | `4.15.0` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.46.2` | `0.46.4` |\n| [pypardiso](https://github.com/haasad/PyPardiso) | `0.4.6` | `0.4.7` |\n| [pyside6](https://pyside.org) | `6.9.2` | `6.10.1` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\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.0` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.1.3` | `8.2.3` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.0.1` | `3.5.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.2.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.1` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2026.1.4` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [intel-openmp](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html) | `2025.2.1` | `2025.3.1` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `9.9.0` |\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-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [mkl](https://github.com/uxlfoundation/oneMath) | `2025.2.0` | `2025.3.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `0.12.1` | `1.0.2` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pyinstaller-hooks-contrib](https://github.com/pyinstaller/pyinstaller-hooks-contrib) | `2025.10` | `2025.11` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.3.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.1.0` | `14.2.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [scooby](https://github.com/banesullivan/scooby) | `0.10.1` | `0.11.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.1` | `0.50.0` |\n| [tbb](https://github.com/oneapi-src/oneTBB) | `2022.2.0` | `2022.3.0` |\n| [tcmlib](https://oneapi-src.github.io/oneTBB/GSG/next_steps.html) | `1.4.0` | `1.4.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.31.2` | `20.36.0` |\n| [vtk](https://vtk.org) | `9.5.0` | `9.5.2` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `click` from 8.2.1 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/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\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 \u003ccode\u003eCliRunner\u003c/code\u003e. :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.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.2.1...8.3.1\"\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.8\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.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\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/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.3...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.0 to 1.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.16.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.3\u003c/code\u003e is a bug-fix release with no new features compared to \u003ccode\u003e1.16.2\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eChrisAB (1) +\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (3)\u003c/li\u003e\n\u003cli\u003eMatt Haberland (8)\u003c/li\u003e\n\u003cli\u003eNick ODell (2)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (1)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (28)\u003c/li\u003e\n\u003cli\u003eLucas Roberts (2)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 8 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003cp\u003eThe full issue and pull request lists, and the release asset hashes are available\nin the associated \u003ccode\u003eREADME.txt\u003c/code\u003e file.\u003c/p\u003e\n\u003ch1\u003eSciPy 1.16.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.2\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.16.1\u003c/code\u003e. This is the first stable release of\nSciPy to provide Windows on ARM wheels on PyPI.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eDietrich Brunn (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (6)\u003c/li\u003e\n\u003cli\u003eAdam Jones (1)\u003c/li\u003e\n\u003cli\u003eGleb Khmyznikov (1) +\u003c/li\u003e\n\u003cli\u003eJost Migenda (1) +\u003c/li\u003e\n\u003cli\u003enewyork_loki (1)\u003c/li\u003e\n\u003cli\u003eNick ODell (3)\u003c/li\u003e\n\u003cli\u003eDimitri Papadopoulos Orfanos (1)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (2)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (26)\u003c/li\u003e\n\u003cli\u003eMugunthan Selvanayagam (1) +\u003c/li\u003e\n\u003cli\u003eShuhei Watanabe (1) +\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 12 people contributed to this release.\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/scipy/scipy/commit/b9105ccc2237f57acb1060202cd77f6dd264fb34\"\u003e\u003ccode\u003eb9105cc\u003c/code\u003e\u003c/a\u003e REL: 1.16.3 rel commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/4b7699ceb2e7070e732f9a7e24aab46683f41305\"\u003e\u003ccode\u003e4b7699c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23805\"\u003e#23805\u003c/a\u003e from tylerjereddy/treddy_backports_1.16.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/874b75b11d09373c4e7b4fd12975f27d52af4714\"\u003e\u003ccode\u003e874b75b\u003c/code\u003e\u003c/a\u003e MAINT: PR 23805 wheel builds [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/de06a58d65ee0c0266ceb3adaca82c5405206bc4\"\u003e\u003ccode\u003ede06a58\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f642304717d140ede11bb095ee7cc5754e075d1d\"\u003e\u003ccode\u003ef642304\u003c/code\u003e\u003c/a\u003e TST: linalg.svd: skip on 32-bit due to limited memory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/df479083772fbfae5840c198f53ee938ffcd6dc6\"\u003e\u003ccode\u003edf47908\u003c/code\u003e\u003c/a\u003e CI: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f5840635ec2ae1d3ff023159c5e58936e9a2303d\"\u003e\u003ccode\u003ef584063\u003c/code\u003e\u003c/a\u003e TST: stats.boxcox_llf: bump test tolerance for Accelerate (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23864\"\u003e#23864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/fc60b2f449100a55bdb23777b6b5adc3cb38d61a\"\u003e\u003ccode\u003efc60b2f\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/0dd12ec9b92338005959bde3611375ceea18f73a\"\u003e\u003ccode\u003e0dd12ec\u003c/code\u003e\u003c/a\u003e BLD: stats.multivariate_normal: silence pythran build warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/d3b1e625735c1e7c8e9963f5f7c2dd5755636f9d\"\u003e\u003ccode\u003ed3b1e62\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;BLD: stats.multivariate_normal: suppress pythran build warning\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.0...v1.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gmsh` from 4.14.0 to 4.15.0\n\nUpdates `pyvista` from 0.46.2 to 0.46.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyvista/pyvista/releases\"\u003epyvista's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.46.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 by \u003ca href=\"https://github.com/user27182\"\u003e\u003ccode\u003e@​user27182\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyvista/pyvista/pull/8041\"\u003epyvista/pyvista#8041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.46.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003ePyVista \u003ccode\u003e0.46.0\u003c/code\u003e introduced a breaking change by requiring the use of \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e for setting new attributes (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/7716\"\u003e#7716\u003c/a\u003e). This patch release \u003ccode\u003e0.46.3\u003c/code\u003e relaxes this requirement by only requiring this for setting new \u003cem\u003epublic\u003c/em\u003e attributes. Private attributes (with a \u003ccode\u003e_\u003c/code\u003e prefix) can be set without the need to use \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\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/pyvista/pyvista/commit/eabebf9d2977ee0027d6f8e4d1c03ab39f03e8a9\"\u003e\u003ccode\u003eeabebf9\u003c/code\u003e\u003c/a\u003e Fix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8041\"\u003e#8041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/a6fa92498a9896bdba7d495b39273151c6e68cfa\"\u003e\u003ccode\u003ea6fa924\u003c/code\u003e\u003c/a\u003e Allow setting new private attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/dfa05fe8c21b0f72516b8dd7e1695fce8633b000\"\u003e\u003ccode\u003edfa05fe\u003c/code\u003e\u003c/a\u003e Bump version to 0.46.3\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypardiso` from 0.4.6 to 0.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/haasad/PyPardiso/releases\"\u003epypardiso's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.7\u003c/h2\u003e\n\u003cp\u003e5 changes since v0.4.6\u003c/p\u003e\n\u003ch2\u003e🚧 Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for macOS (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix failing tests for pip installed scipy (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type mismatch for sparse arrays (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📄 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse a valid SPDX identifier as license classifier (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚚 CI and Packaging\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun tests for currently supported Python versions (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\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/haasad/PyPardiso/commit/d78ba0108c09a391b99567877be7a45aefc8beb4\"\u003e\u003ccode\u003ed78ba01\u003c/code\u003e\u003c/a\u003e Fix license configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/2b287ca57b1c9919ca927bc6eeb8a136badb9260\"\u003e\u003ccode\u003e2b287ca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e from urob/fix-type-mismatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/04effe91176b7b2e3cf7a85be5fc97be4ec39450\"\u003e\u003ccode\u003e04effe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e from ecederstrand/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/405844b87dbbf111a77668088cac4d4900fef5ce\"\u003e\u003ccode\u003e405844b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\u003c/a\u003e from haasad/maint/python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/f5c7999884b5e8eb71e64ce39fb43f1ff8dd755a\"\u003e\u003ccode\u003ef5c7999\u003c/code\u003e\u003c/a\u003e Run tests for currently supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/d5eec2fdb417bb331ae5de2358ffbc691bb20cde\"\u003e\u003ccode\u003ed5eec2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e from haasad/breaking/remove-macos-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/c1da59caa1e53aa527aab261662087b2f7465ec6\"\u003e\u003ccode\u003ec1da59c\u003c/code\u003e\u003c/a\u003e Remove support for macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/53b301b48cadf086e0056c34fc6bf24a21566b35\"\u003e\u003ccode\u003e53b301b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e from haasad/fix/scipy-error-groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/5a759de7aba8d91ed6e2d1b2585686deed12f4f0\"\u003e\u003ccode\u003e5a759de\u003c/code\u003e\u003c/a\u003e Update changelog config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/a3ec43e43b4110b4696f44b0cb7207441af7bf58\"\u003e\u003ccode\u003ea3ec43e\u003c/code\u003e\u003c/a\u003e Test for ValueError or TypeError\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haasad/PyPardiso/compare/v0.4.6...v0.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyside6` from 6.9.2 to 6.10.1\n\nUpdates `black` from 25.1.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.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.1 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2024.8.6 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2025.09.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epage.html: fix invalid HTML5 by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebase.html: fix trailing slash on void elements by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/895\"\u003epradyunsg/furo#895\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e_scaffold.sass: remove old scrollbar selectors by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/892\"\u003epradyunsg/furo#892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Blender to \u0026quot;used by\u0026quot; section by \u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\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/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2025.07.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value by \u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/847\"\u003epradyunsg/furo#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/826\"\u003epradyunsg/furo#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/861\"\u003epradyunsg/furo#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/873\"\u003epradyunsg/furo#873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd rel=edit attribute to \u0026quot;Edit this page\u0026quot; link/icon by \u003ca href=\"https://github.com/capjamesg\"\u003e\u003ccode\u003e@​capjamesg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/880\"\u003epradyunsg/furo#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/879\"\u003epradyunsg/furo#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix flickering header drop shadow by \u003ca href=\"https://github.com/holesch\"\u003e\u003ccode\u003e@​holesch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/884\"\u003epradyunsg/furo#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake current page section detection resilient to sticky elements above header by \u003ca href=\"https://github.com/Eric-Arellano\"\u003e\u003ccode\u003e@​Eric-Arellano\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/664\"\u003epradyunsg/furo#664\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/capjamesg\"\u003e\u003ccode\u003e@​capjamesg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/880\"\u003epradyunsg/furo#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holesch\"\u003e\u003ccode\u003e@​holesch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/884\"\u003epradyunsg/furo#884\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...v1.19.1\"\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.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by...\n\n_Description has been truncated_","html_url":"https://github.com/DanBeranek/temperatureanalysis/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanBeranek%2Ftemperatureanalysis/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-01-01T18:27:20.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3775006330","node_id":"PR_kwDOQY3FR867N_yT","number":24,"state":"closed","title":"build(deps): bump the poetry-dependencies group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T18:21:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T18:27:20.000Z","updated_at":"2026-02-01T18:21:30.000Z","time_to_close":2678048,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"poetry-dependencies","update_count":19,"packages":[{"name":"black","old_version":"25.11.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.12.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.5","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"cachetools","old_version":"6.2.2","new_version":"6.2.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.20.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-auth","old_version":"2.43.0","new_version":"2.45.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"platformdirs","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 19 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.11.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.12.0` | `7.13.1` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.4.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.5` | `0.14.10` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.2` | `6.2.4` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.0` | `3.20.1` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.43.0` | `2.45.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.0` | `4.5.1` |\n| ruamel-yaml | `0.18.16` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n\n\nUpdates `black` from 25.11.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...25.12.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.12.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.12.0...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.4.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.4.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.5 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.5...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.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.11.0 to 4.12.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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/bc021b634291223d6829c0a689152173443a8545\"\u003e\u003ccode\u003ebc021b6\u003c/code\u003e\u003c/a\u003e Fixed the download-artifact settings to retain the expected behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c6000aa2837f75733f3c09c454f5a31eb9f9f536\"\u003e\u003ccode\u003ec6000aa\u003c/code\u003e\u003c/a\u003e Corrected the format of the version in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9d1bfe0da4261bcef3c10cd31218237805a89937\"\u003e\u003ccode\u003e9d1bfe0\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/77f7ce25e12c9becf5081105a47b1914e50a3e0a\"\u003e\u003ccode\u003e77f7ce2\u003c/code\u003e\u003c/a\u003e Fixed RuntimeError while shutting down the asyncio process pool (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1039\"\u003e#1039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aecc666e6b3b40f977ee715d141bdd89711b45cb\"\u003e\u003ccode\u003eaecc666\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e5569adf98394dfabebccf215a04d05d7819b506\"\u003e\u003ccode\u003ee5569ad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/dde3ab8583cb194e663f6fb87703a4a79e2701eb\"\u003e\u003ccode\u003edde3ab8\u003c/code\u003e\u003c/a\u003e Moved a changelog entry to its correct position\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/250d4f183245bf7ee5ead0ff39d521cda2b8d617\"\u003e\u003ccode\u003e250d4f1\u003c/code\u003e\u003c/a\u003e Restore compatibility with pytest\u0026lt;=6.1.2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1030\"\u003e#1030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3708e227838e2f51464900cf806b25c30ca458a7\"\u003e\u003ccode\u003e3708e22\u003c/code\u003e\u003c/a\u003e Fixed a typo in the documentation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1035\"\u003e#1035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9adbe08c55e725b0388dcc4ab7556875da881a4c\"\u003e\u003ccode\u003e9adbe08\u003c/code\u003e\u003c/a\u003e Add new params to Path.glob \u0026amp; Path.rglob introduced since 3.12 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.12.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.14.2 to 4.14.3\n\nUpdates `cachetools` from 6.2.2 to 6.2.4\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.4 (2025-12-15)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix license information displayed on PyPI be using an updated\nversion of \u003ccode\u003etwine\u003c/code\u003e for uploading.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.3 (2025-12-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation regarding \u003ccode\u003e@cachedmethod\u003c/code\u003e with \u003ccode\u003econdition\u003c/code\u003e\nparameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMinor style and readability improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModernize build environment.\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/9983ef8bd76758707ab9d197d4bd9fa47b4fb8bd\"\u003e\u003ccode\u003e9983ef8\u003c/code\u003e\u003c/a\u003e Bump version for uploading with updated twine.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c9354683857b10b5e00cb93d06f7549ac8344fc0\"\u003e\u003ccode\u003ec935468\u003c/code\u003e\u003c/a\u003e Release v6.2.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/94d1099e6e79d34c436dc9f5d1cc039bcbf76738\"\u003e\u003ccode\u003e94d1099\u003c/code\u003e\u003c/a\u003e Prepare v6.2.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/af8b7d4ffa48d5947161ddb8c1ef1c60dda1e816\"\u003e\u003ccode\u003eaf8b7d4\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/372\"\u003e#372\u003c/a\u003e: Convert setup.cfg to pyproject.toml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/20b8a192f666420a1986b793fd5846b89fdcd647\"\u003e\u003ccode\u003e20b8a19\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/370\"\u003e#370\u003c/a\u003e: Mention that using \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e with condition requires self to be...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/116fb4c3459067442d731e01a3db4694b50722f1\"\u003e\u003ccode\u003e116fb4c\u003c/code\u003e\u003c/a\u003e Minor style and readability improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/96546ea34f8c77df009fb3bc019b72b03589c3fd\"\u003e\u003ccode\u003e96546ea\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/0106cc1d4764c9a94cd39a55579ce49bca9f4e1e\"\u003e\u003ccode\u003e0106cc1\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.2.2...v6.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cfgv` from 3.4.0 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/c7342120ec8513671fb8dd54d8a14399dc59cd47\"\u003e\u003ccode\u003ec734212\u003c/code\u003e\u003c/a\u003e v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/d64e0cc2ba77dff75a4c15fb6cf5e6ed315dc80b\"\u003e\u003ccode\u003ed64e0cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/158\"\u003e#158\u003c/a\u003e from asottile/key-value-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/641559f162edff0c37277cd7c5ebd2b65292fad1\"\u003e\u003ccode\u003e641559f\u003c/code\u003e\u003c/a\u003e add KeyValueMap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/82e2f93a1554805a8938a6a3a588efe982e03019\"\u003e\u003ccode\u003e82e2f93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/157\"\u003e#157\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/69cd02016f6a69de3a19a9741f16aa6d40120164\"\u003e\u003ccode\u003e69cd020\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/5ccc4d404d9a6a83bd3b12c1a24437db7ce8a081\"\u003e\u003ccode\u003e5ccc4d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/156\"\u003e#156\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/2e7ffe560a5de38906821304378fe26ceb7a536c\"\u003e\u003ccode\u003e2e7ffe5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/ef7849933897d28727e453646a5a632202724d41\"\u003e\u003ccode\u003eef78499\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/155\"\u003e#155\u003c/a\u003e from asottile/all-repos_autofix_all-repos-manual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/b34b882bba1f683e9e3da7b3ab97e3ee1607977f\"\u003e\u003ccode\u003eb34b882\u003c/code\u003e\u003c/a\u003e py310+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/724a279ea352c1883761e34e3f261c11be28f374\"\u003e\u003ccode\u003e724a279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/154\"\u003e#154\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/asottile/cfgv/compare/v3.4.0...v3.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `exceptiongroup` from 1.3.0 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eAttributeError: 'TracebackException' object has no attribute 'exceptions'\u003c/code\u003e when formatting unpickled TBEs from another Python process which did not apply the \u003ccode\u003eexceptiongroup\u003c/code\u003e patches (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/144\"\u003e#144\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/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup'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\u003e1.3.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eAttributeError: 'TracebackException' object has no attribute 'exceptions'\u003c/code\u003e\nwhen formatting unpickled TBEs from another Python process which did not apply the\n\u003ccode\u003eexceptiongroup\u003c/code\u003e patches\n(\u003ccode\u003e[#144](https://github.com/agronholm/exceptiongroup/issues/144) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/144\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\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/agronholm/exceptiongroup/commit/ddddb6fdf8582c4ae5187dc1bd258115974229fe\"\u003e\u003ccode\u003eddddb6f\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/49c5e60d9efad1416f4f42455e119375904a1d6d\"\u003e\u003ccode\u003e49c5e60\u003c/code\u003e\u003c/a\u003e Fixed AttributeError when formatting unpickled TBEs from an unpatched process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/1be517f553249822a8fa12a4d7520d4b3ef15acd\"\u003e\u003ccode\u003e1be517f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/af0ea2fdfe218a4c2a1cb31ebd1a61dba459af6f\"\u003e\u003ccode\u003eaf0ea2f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/7c980a88a06a72db3d796d98504b335d24274abb\"\u003e\u003ccode\u003e7c980a8\u003c/code\u003e\u003c/a\u003e Removed pin on pyright version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/ef853368c8b94479adbd33cc58f1cac05839e116\"\u003e\u003ccode\u003eef85336\u003c/code\u003e\u003c/a\u003e Fixed typing job not finding Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/080b3f4e925bbdb8cee70cc30c5ef2937eab2bde\"\u003e\u003ccode\u003e080b3f4\u003c/code\u003e\u003c/a\u003e Pinned pyright version to fix typeshed related failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/ac660908a1987880eddbb249947c1eef6e08513b\"\u003e\u003ccode\u003eac66090\u003c/code\u003e\u003c/a\u003e Added Python 3.14 to the test matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a0da94dadfb39c0b52c0cd5c87ace166b00f74c1\"\u003e\u003ccode\u003ea0da94d\u003c/code\u003e\u003c/a\u003e Fixed test failures on Python 3.14\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.3.0...1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.20.0 to 3.20.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.20.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation 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/461\"\u003etox-dev/filelock#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/377f62251d7cdf30768cc9ee1eb31cea1551c71b\"\u003e\u003ccode\u003e377f622\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4724d7f8c3393ec1f048c93933e6e3e6ec321f0e\"\u003e\u003ccode\u003e4724d7f\u003c/code\u003e\u003c/a\u003e Fix TOCTOU symlink vulnerability in lock file creation (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb69414a2327cf0a9887e12054d1dc112ee700af\"\u003e\u003ccode\u003ecb69414\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0769294f14a6c62eea64741722f7acef5386b4cd\"\u003e\u003ccode\u003e0769294\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/414193a188892bd376eb5c56eb45a9cf8ecc9284\"\u003e\u003ccode\u003e414193a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/457\"\u003e#457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1456797beb94ad59e5627462ad29f7ed3a966626\"\u003e\u003ccode\u003e1456797\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d6bf90af313ac7fd6e41ef2b715d91dd6858f5c\"\u003e\u003ccode\u003e8d6bf90\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f7edeebddf79c210db2a6af145d33849e93c5550\"\u003e\u003ccode\u003ef7edeeb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/fb0923562189078b524ad3bd978e5e743dea9b2f\"\u003e\u003ccode\u003efb09235\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5825d867707b432e1c93f85833ce8d3766c986c\"\u003e\u003ccode\u003ef5825d8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/452\"\u003e#452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.20.0...3.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.43.0 to 2.45.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e7\"\u003e0f7097e7\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5\"\u003e39c381a5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cc\"\u003ecf6fc3cc\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986\"\u003ed5638986\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907\"\u003e78de7907\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7e\"\u003eb0993c7e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f\"\u003ee0c3296f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\"\u003ecf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003ee0c3296f471747258f6d98d2d9bfde636358ecde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003eb0993c7edaba505d0fb0628af28760c43034c959\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/google-auth-library-python/commit/08fabf776c02dc6a70472b3ddd9733d66d0053bf\"\u003e\u003ccode\u003e08fabf7\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T132028Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1891\"\u003e#1891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003e\u003ccode\u003eb32c934\u003c/code\u003e\u003c/a\u003e feat: Adding Agent Identity bound token support and handling certificate mism...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/262eb9e33d58ffeb536ecd083c22d9fb12c808e6\"\u003e\u003ccode\u003e262eb9e\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251212T161150Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1888\"\u003e#1888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e\u003ccode\u003e0f7097e\u003c/code\u003e\u003c/a\u003e feat: support Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003e\u003ccode\u003ee0c3296\u003c/code\u003e\u003c/a\u003e fix(auth): Use public refresh method for source credentials in ImpersonatedCr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e\u003ccode\u003e78de790\u003c/code\u003e\u003c/a\u003e fix(auth): Add temporary patch to workload cert logic to accomodate Cloud Run...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3e8a56687fd050ff44a35cc8db0e95e996648173\"\u003e\u003ccode\u003e3e8a566\u003c/code\u003e\u003c/a\u003e chore(tests): allow expired secret in system tests (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003e\u003ccode\u003eb0993c7\u003c/code\u003e\u003c/a\u003e fix(auth): Delegate workload cert and key default lookup to helper function (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2c374d36a61569b75d11c17fae124d591c52ddc6\"\u003e\u003ccode\u003e2c374d3\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e\u003ccode\u003e39c381a\u003c/code\u003e\u003c/a\u003e feat: add ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.45.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/n...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-guardian-client/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-guardian-client/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-01-01T08:27:22.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3774302783","node_id":"PR_kwDOLUtxJc67Ltr1","number":111,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 46 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-13T14:34:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T08:27:22.000Z","updated_at":"2026-01-13T14:34:40.000Z","time_to_close":1058836,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":46,"packages":[{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"black","old_version":"25.9.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.2","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"jupytext","old_version":"1.17.3","new_version":"1.18.1","repository_url":"https://github.com/mwouts/jupytext"},{"name":"ipykernel","old_version":"6.30.1","new_version":"6.31.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"statsmodels","old_version":"0.14.5","new_version":"0.14.6","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"pandas-stubs","old_version":"2.3.2.250926","new_version":"2.3.3.251219","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"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.14.2","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.8.3","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.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"debugpy","old_version":"1.8.17","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.14","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jupyter-client","old_version":"8.6.3","new_version":"8.7.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"patsy","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/pydata/patsy"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"psutil","old_version":"7.1.0","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"tornado","old_version":"6.5.2","new_version":"6.5.4","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 45 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.2` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [jupytext](https://github.com/mwouts/jupytext) | `1.17.3` | `1.18.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `6.31.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.5` | `0.14.6` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.2.250926` | `2.3.3.251219` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.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.14.2` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `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.3` | `3.4.4` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.17` | `1.8.19` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.14` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.6.3` | `8.7.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [patsy](https://github.com/pydata/patsy) | `1.0.1` | `1.0.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.2.1` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.2` | `6.5.4` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n\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 `black` from 25.9.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.2 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.2...0.14.10\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/blob/main/CHANGELOG.md\"\u003edeptry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0 - 2025-11-09\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/commit/4cc2d65ce1343957c911ca45709d6080cb9f82c3\"\u003e\u003ccode\u003e4cc2d65\u003c/code\u003e\u003c/a\u003e docs(changelog): add 0.24.0 release notes (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/8757b318e9974bbfa7ec65dabf999bc935ac026f\"\u003e\u003ccode\u003e8757b31\u003c/code\u003e\u003c/a\u003e chore: sync all dependency groups by default and run mypy locally (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1337\"\u003e#1337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/5ebc5c066831dd3dfeef7e79a4ae4f5934d744b9\"\u003e\u003ccode\u003e5ebc5c0\u003c/code\u003e\u003c/a\u003e feat: add github annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/aa59b6fa66bd3468ad681317de14189606a9c04e\"\u003e\u003ccode\u003eaa59b6f\u003c/code\u003e\u003c/a\u003e fix(deps): update ruff rust to v0.14.4 (patch) (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/87a6b87428641bc7cab3b22d00d788e28ed86ae9\"\u003e\u003ccode\u003e87a6b87\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b938ae73633b1a1f46e3888c9673b49d5e9dd60\"\u003e\u003ccode\u003e6b938ae\u003c/code\u003e\u003c/a\u003e chore(deps): update uv-version to v0.9.8 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/92c35bab5ad0a11d2becc31e4cdbe4413a746233\"\u003e\u003ccode\u003e92c35ba\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook woodruffw/zizmor-pre-commit to v1.16.3 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/a8be2902812426acaf00ff344dc93a48f30d48d7\"\u003e\u003ccode\u003ea8be290\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1332\"\u003e#1332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6abefd1237071ba0e8d3fc1c9e02a402ccde11f6\"\u003e\u003ccode\u003e6abefd1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mkdocs-material to v9.6.23 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b556861d72024d1f8b5f8c8ead9d1b48cef0f9e\"\u003e\u003ccode\u003e6b55686\u003c/code\u003e\u003c/a\u003e test: update all test dependencies (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-statstruk/pull/111","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-statstruk/issues/111","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/111/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-01-01T08:19:42.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3774294460","node_id":"PR_kwDOKRFaas67Lr6W","number":146,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 40 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T08:20:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T08:19:42.000Z","updated_at":"2026-02-01T08:20:54.000Z","time_to_close":2678470,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":40,"packages":[{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"python-on-whales","old_version":"0.78.0","new_version":"0.79.0","repository_url":"https://github.com/gabrieldemarmiesse/python-on-whales"},{"name":"black","old_version":"25.9.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.2","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.5","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.8.3","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.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.61.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.14","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"pillow","old_version":"11.3.0","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic","old_version":"2.11.9","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pyparsing","old_version":"3.2.5","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 37 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [python-on-whales](https://github.com/gabrieldemarmiesse/python-on-whales) | `0.78.0` | `0.79.0` |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.2` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.5` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `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.3` | `3.4.4` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.61.0` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.14` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.9` | `2.12.5` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.5` | `3.3.1` |\n| ruamel-yaml | `0.18.15` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n\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 `matplotlib` from 3.10.6 to 3.10.8\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.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\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\u003c/blockquote\u003e\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/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.6...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-on-whales` from 0.78.0 to 0.79.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/releases\"\u003epython-on-whales's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.79.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat : Add support for Docker service networks in ComposeService by \u003ca href=\"https://github.com/R3gardless\"\u003e\u003ccode\u003e@​R3gardless\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/683\"\u003egabrieldemarmiesse/python-on-whales#683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Docs] Enable Syntax Highlighting by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/686\"\u003egabrieldemarmiesse/python-on-whales#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove typing of \u003ccode\u003erun\u003c/code\u003e by using \u003ccode\u003e@overload\u003c/code\u003e by \u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/685\"\u003egabrieldemarmiesse/python-on-whales#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd metadata_file opt-in for buildx builds by \u003ca href=\"https://github.com/K-dash\"\u003e\u003ccode\u003e@​K-dash\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/689\"\u003egabrieldemarmiesse/python-on-whales#689\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/R3gardless\"\u003e\u003ccode\u003e@​R3gardless\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/683\"\u003egabrieldemarmiesse/python-on-whales#683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/686\"\u003egabrieldemarmiesse/python-on-whales#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/patrick91\"\u003e\u003ccode\u003e@​patrick91\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/685\"\u003egabrieldemarmiesse/python-on-whales#685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/K-dash\"\u003e\u003ccode\u003e@​K-dash\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/pull/689\"\u003egabrieldemarmiesse/python-on-whales#689\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank you for your contributions! This makes me very happy to see new faces!\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/compare/v0.78.0...v0.79.0\"\u003ehttps://github.com/gabrieldemarmiesse/python-on-whales/compare/v0.78.0...v0.79.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/gabrieldemarmiesse/python-on-whales/commit/497852485e34c2d32ae0590be5907e2a5a8855fc\"\u003e\u003ccode\u003e4978524\u003c/code\u003e\u003c/a\u003e Bump python-on-whales version to 0.79.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/commit/d39aaeeb57990b05a516c0772deb48af3d8a9930\"\u003e\u003ccode\u003ed39aaee\u003c/code\u003e\u003c/a\u003e Add metadata_file opt-in for buildx builds (\u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/issues/689\"\u003e#689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/commit/b694f852a046a62ccbf2341c1a946f4c72d32bb3\"\u003e\u003ccode\u003eb694f85\u003c/code\u003e\u003c/a\u003e Improve typing of \u003ccode\u003erun\u003c/code\u003e by using \u003ccode\u003e@overload\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/commit/488ab4a2be87d6a54588979b4364ae14baf97b3a\"\u003e\u003ccode\u003e488ab4a\u003c/code\u003e\u003c/a\u003e [Docs] Enable Syntax Highlighting (\u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/commit/88eae6739915ad0583a0bcf7dec9a31004ecce1c\"\u003e\u003ccode\u003e88eae67\u003c/code\u003e\u003c/a\u003e feat : Add support for Docker service networks in ComposeService (\u003ca href=\"https://redirect.github.com/gabrieldemarmiesse/python-on-whales/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/gabrieldemarmiesse/python-on-whales/compare/v0.78.0...v0.79.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.9.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.2 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.2...0.14.10\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003euni...\n\n_Description has been truncated_","html_url":"https://github.com/arnesor/score-o/pull/146","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/arnesor%2Fscore-o/issues/146","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/146/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-01-01T06:28:39.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3774199951","node_id":"PR_kwDOQdUyT867LYV0","number":8,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T07:12:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T06:28:39.000Z","updated_at":"2026-02-01T07:12:31.000Z","time_to_close":2681030,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":17,"packages":[{"name":"black","old_version":"25.11.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.12.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.6","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"beautifulsoup4","old_version":"4.14.2","new_version":"4.14.3"},{"name":"filelock","old_version":"3.20.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"platformdirs","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.11.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.12.0` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.6` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.0` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.0` | `3.20.1` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.0` | `4.5.1` |\n| ruamel-yaml | `0.18.16` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n\n\nUpdates `black` from 25.11.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...25.12.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.12.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.12.0...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.6 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.6...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.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.11.0 to 4.12.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.12.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for asyncio's \u003ca href=\"https://docs.python.org/3/library/asyncio-graph.html\"\u003etask call graphs\u003c/a\u003e on Python 3.14 and later when using AnyIO's task groups (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded an asynchronous implementation of the \u003ccode\u003efunctools\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1001\"\u003e#1001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003euvloop=True\u003c/code\u003e on Windows via the \u003ca href=\"https://github.com/Vizonex/Winloop\"\u003ewinloop\u003c/a\u003e implementation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/960\"\u003e#960\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for use as a context manager to \u003ccode\u003eanyio.lowlevel.RunVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__all__\u003c/code\u003e declarations to public submodules (\u003ccode\u003eanyio.lowlevel\u003c/code\u003e etc.) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1009\"\u003e#1009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to set the token count of a \u003ccode\u003eCapacityLimiter\u003c/code\u003e to zero (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1019\"\u003e#1019\u003c/a\u003e; requires Python 3.10 or later when using Trio)\u003c/li\u003e\n\u003cli\u003eAdded parameters \u003ccode\u003ecase_sensitive\u003c/code\u003e and \u003ccode\u003erecurse_symlinks\u003c/code\u003e along with support for path-like objects to \u003ccode\u003eanyio.Path.glob()\u003c/code\u003e and \u003ccode\u003eanyio.Path.rglob()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1033\"\u003e#1033\u003c/a\u003e; PR by \u003ca href=\"https://github.com/northisup\"\u003e\u003ccode\u003e@​northisup\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped \u003ccode\u003esniffio\u003c/code\u003e as a direct dependency and added the \u003ccode\u003eget_available_backends()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not raising \u003ccode\u003eClosedResourceError\u003c/code\u003e and \u003ccode\u003eBrokenResourceError\u003c/code\u003e on asyncio. Previously, a non-AnyIO exception was raised in such cases (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/671\"\u003e#671\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcess.stdin.send()\u003c/code\u003e not checkpointing before writing data on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1002\"\u003e#1002\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a race condition where cancelling a \u003ccode\u003eFuture\u003c/code\u003e from \u003ccode\u003eBlockingPortal.start_task_soon()\u003c/code\u003e would sometimes not cancel the async function (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1011\"\u003e#1011\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the presence of the pytest plugin causing breakage with older versions of pytest (\u0026lt;= 6.1.2) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1028\"\u003e#1028\u003c/a\u003e; PR by \u003ca href=\"https://github.com/saper\"\u003e\u003ccode\u003e@​saper\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a rarely occurring \u003ccode\u003eRuntimeError: Set changed size during iteration\u003c/code\u003e while shutting down the process pool when using the asyncio backend (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/bc021b634291223d6829c0a689152173443a8545\"\u003e\u003ccode\u003ebc021b6\u003c/code\u003e\u003c/a\u003e Fixed the download-artifact settings to retain the expected behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/c6000aa2837f75733f3c09c454f5a31eb9f9f536\"\u003e\u003ccode\u003ec6000aa\u003c/code\u003e\u003c/a\u003e Corrected the format of the version in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9d1bfe0da4261bcef3c10cd31218237805a89937\"\u003e\u003ccode\u003e9d1bfe0\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/77f7ce25e12c9becf5081105a47b1914e50a3e0a\"\u003e\u003ccode\u003e77f7ce2\u003c/code\u003e\u003c/a\u003e Fixed RuntimeError while shutting down the asyncio process pool (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1039\"\u003e#1039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/aecc666e6b3b40f977ee715d141bdd89711b45cb\"\u003e\u003ccode\u003eaecc666\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e5569adf98394dfabebccf215a04d05d7819b506\"\u003e\u003ccode\u003ee5569ad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/dde3ab8583cb194e663f6fb87703a4a79e2701eb\"\u003e\u003ccode\u003edde3ab8\u003c/code\u003e\u003c/a\u003e Moved a changelog entry to its correct position\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/250d4f183245bf7ee5ead0ff39d521cda2b8d617\"\u003e\u003ccode\u003e250d4f1\u003c/code\u003e\u003c/a\u003e Restore compatibility with pytest\u0026lt;=6.1.2 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1030\"\u003e#1030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/3708e227838e2f51464900cf806b25c30ca458a7\"\u003e\u003ccode\u003e3708e22\u003c/code\u003e\u003c/a\u003e Fixed a typo in the documentation (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1035\"\u003e#1035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9adbe08c55e725b0388dcc4ab7556875da881a4c\"\u003e\u003ccode\u003e9adbe08\u003c/code\u003e\u003c/a\u003e Add new params to Path.glob \u0026amp; Path.rglob introduced since 3.12 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1034\"\u003e#1034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.11.0...4.12.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.14.2 to 4.14.3\n\nUpdates `filelock` from 3.20.0 to 3.20.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.20.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation 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/461\"\u003etox-dev/filelock#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/377f62251d7cdf30768cc9ee1eb31cea1551c71b\"\u003e\u003ccode\u003e377f622\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4724d7f8c3393ec1f048c93933e6e3e6ec321f0e\"\u003e\u003ccode\u003e4724d7f\u003c/code\u003e\u003c/a\u003e Fix TOCTOU symlink vulnerability in lock file creation (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb69414a2327cf0a9887e12054d1dc112ee700af\"\u003e\u003ccode\u003ecb69414\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0769294f14a6c62eea64741722f7acef5386b4cd\"\u003e\u003ccode\u003e0769294\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/414193a188892bd376eb5c56eb45a9cf8ecc9284\"\u003e\u003ccode\u003e414193a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/457\"\u003e#457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1456797beb94ad59e5627462ad29f7ed3a966626\"\u003e\u003ccode\u003e1456797\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d6bf90af313ac7fd6e41ef2b715d91dd6858f5c\"\u003e\u003ccode\u003e8d6bf90\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f7edeebddf79c210db2a6af145d33849e93c5550\"\u003e\u003ccode\u003ef7edeeb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/fb0923562189078b524ad3bd978e5e743dea9b2f\"\u003e\u003ccode\u003efb09235\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5825d867707b432e1c93f85833ce8d3766c986c\"\u003e\u003ccode\u003ef5825d8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/452\"\u003e#452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.20.0...3.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sh instead of bash by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport leading \u003ccode\u003ev\u003c/code\u003e in \u003ccode\u003e.node-version\u003c/code\u003e by \u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck host platform when finding \u003ccode\u003enode\u003c/code\u003e version by \u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\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/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#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/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ehttps://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.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/ekalinin/nodeenv/commit/9dee547f5e45c9d1b155e4351d165f2b504ae281\"\u003e\u003ccode\u003e9dee547\u003c/code\u003e\u003c/a\u003e chore: bump nodeenv version to 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/d45aabbf54139f5ecbaf9db05d3949d39999136e\"\u003e\u003ccode\u003ed45aabb\u003c/code\u003e\u003c/a\u003e chore: add pyright ignore comments for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/55d6c21a6d56631c0c1d08a04d3c1ea3531ba832\"\u003e\u003ccode\u003e55d6c21\u003c/code\u003e\u003c/a\u003e chore: update AUTHORS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/5f694e6ac261f29233a28061e4af64669199721e\"\u003e\u003ccode\u003e5f694e6\u003c/code\u003e\u003c/a\u003e test: update test test_node_system_creates_shim\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/fa3fdfb1bf807d869795f5bf690359808cb5c529\"\u003e\u003ccode\u003efa3fdfb\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:ekalinin/nodeenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/e868dbe29cad74819615d039b78af21bb2ae431d\"\u003e\u003ccode\u003ee868dbe\u003c/code\u003e\u003c/a\u003e Replace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/b4cd00d453d9f4772c7c410dfbc57d7e757dad5e\"\u003e\u003ccode\u003eb4cd00d\u003c/code\u003e\u003c/a\u003e test: enhance activation tests for nodeenv with custom prompts and file handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/0b5ea9d55ad72ef30a5a7461e27b95c9453bd833\"\u003e\u003ccode\u003e0b5ea9d\u003c/code\u003e\u003c/a\u003e refactor(tests): improve readability of mock patches in nodeenv tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/37c0c304317b9a5646e1779d38b71c4c6928a0a5\"\u003e\u003ccode\u003e37c0c30\u003c/code\u003e\u003c/a\u003e ci: add GH workflow for testing and coverage in PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/326a7a4c1ced11fb3356cdd2c8511f9cdeb81ebc\"\u003e\u003ccode\u003e326a7a4\u003c/code\u003e\u003c/a\u003e test: add comprehensive tests for install_npm and install_npm_win functions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix no-ctypes fallback on windows by \u003ca href=\"https://github.com/youknowone\"\u003e\u003ccode\u003e@​youknowone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/403\"\u003etox-dev/platformdirs#403\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/e4dbdb8c8ed8e448b7cdbbdce4a4ff5c54c5d685\"\u003e\u003ccode\u003ee4dbdb8\u003c/code\u003e\u003c/a\u003e Fix no-ctypes fallback on windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/4cc78aa59bbfa63a993213794f218dac327cf625\"\u003e\u003ccode\u003e4cc78aa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/b624d78851775551b6285c2759cb49325548459b\"\u003e\u003ccode\u003eb624d78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/eb06e7ed58b52ef3876a24393c6235e3928443ec\"\u003e\u003ccode\u003eeb06e7e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/85efbe91422e0b0df64f646dbfe9adb0dff07ed1\"\u003e\u003ccode\u003e85efbe9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/704c603bd3299283b2132f6b4d27daaa4fa2acbf\"\u003e\u003ccode\u003e704c603\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a01817810d92510cfa9cb9e51e7f38094e2fd9b9\"\u003e\u003ccode\u003ea018178\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9920b9bd6b1752d4b1420a3237385dcd3a6ea840\"\u003e\u003ccode\u003e9920b9b\u003c/code\u003e\u003c/a\u003e Bump the all group with 2 updates (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c80472486f4939b795f8552f6b4e629c3db1f538\"\u003e\u003ccode\u003ec804724\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a6a24895db89fe81d8863ca25d1ebeb101fce80b\"\u003e\u003ccode\u003ea6a2489\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruamel-yaml` from 0.18.16 to 0.19.0\n\nUpdates `soupsieve` from 2.8 to 2.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/soupsieve/releases\"\u003esoupsieve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Changes in tests to accommodate latest Python HTML parser changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/f89979745e12e83dbb31dde910a0ad08e9c5c717\"\u003e\u003ccode\u003ef899797\u003c/code\u003e\u003c/a\u003e Adjust changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/1b964a850bb482cc183f3f70811b25487ba200ee\"\u003e\u003ccode\u003e1b964a8\u003c/code\u003e\u003c/a\u003e Switch to using Zensical for documents (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/046ce54956a0c30120038561e53b40994d29de2c\"\u003e\u003ccode\u003e046ce54\u003c/code\u003e\u003c/a\u003e Adjustments for changes in HTML parser (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/soupsieve/compare/2.8...2.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more e...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-libtest13/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-libtest13/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":"/docs","pr_created_at":"2026-01-01T03:01:52.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3774052750","node_id":"PR_kwDOIawopc67K666","number":404,"state":"open","title":"build(deps): bump sphinx-click from 6.1.0 to 6.2.0 in /docs","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-01T03:01:52.000Z","updated_at":"2026-01-01T03:07:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":"/docs","ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [sphinx-click](https://github.com/click-contrib/sphinx-click) from 6.1.0 to 6.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx-click\u0026package-manager=pip\u0026previous-version=6.1.0\u0026new-version=6.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\nDependabot will merge this PR once CI passes on it, as requested by @steven-murray.\n\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/steven-murray/cosmotile/pull/404","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/steven-murray%2Fcosmotile/issues/404","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/404/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2026-01-01T00:28:47.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3773947683","node_id":"PR_kwDOQYtXSc67KmVD","number":8,"state":"closed","title":"Bump the poetry-dependencies group with 16 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T00:29:12.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T00:28:47.000Z","updated_at":"2026-02-01T00:29:14.000Z","time_to_close":2678425,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":16,"packages":[{"name":"black","old_version":"25.11.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.12.0","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.9.25","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.7","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"filelock","old_version":"3.20.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"librt","old_version":"0.6.3","new_version":"0.7.5","repository_url":"https://github.com/mypyc/librt"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"platformdirs","old_version":"4.5.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"ruamel-yaml","old_version":"0.18.16","new_version":"0.19.0"},{"name":"soupsieve","old_version":"2.8","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 16 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.11.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.12.0` | `7.13.1` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.9.25` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.7` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.0` | `3.20.1` |\n| [librt](https://github.com/mypyc/librt) | `0.6.3` | `0.7.5` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.0` | `4.5.1` |\n| ruamel-yaml | `0.18.16` | `0.19.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8` | `2.8.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.38.0` | `0.40.0` |\n\nUpdates `black` from 25.11.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...25.12.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.12.0 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\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/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.12.0...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.9.25 to 2025.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\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.09.25...2025.12.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.7 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.7...0.14.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.20.0 to 3.20.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.20.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation 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/461\"\u003etox-dev/filelock#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/377f62251d7cdf30768cc9ee1eb31cea1551c71b\"\u003e\u003ccode\u003e377f622\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4724d7f8c3393ec1f048c93933e6e3e6ec321f0e\"\u003e\u003ccode\u003e4724d7f\u003c/code\u003e\u003c/a\u003e Fix TOCTOU symlink vulnerability in lock file creation (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb69414a2327cf0a9887e12054d1dc112ee700af\"\u003e\u003ccode\u003ecb69414\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0769294f14a6c62eea64741722f7acef5386b4cd\"\u003e\u003ccode\u003e0769294\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/414193a188892bd376eb5c56eb45a9cf8ecc9284\"\u003e\u003ccode\u003e414193a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/457\"\u003e#457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1456797beb94ad59e5627462ad29f7ed3a966626\"\u003e\u003ccode\u003e1456797\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d6bf90af313ac7fd6e41ef2b715d91dd6858f5c\"\u003e\u003ccode\u003e8d6bf90\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f7edeebddf79c210db2a6af145d33849e93c5550\"\u003e\u003ccode\u003ef7edeeb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/fb0923562189078b524ad3bd978e5e743dea9b2f\"\u003e\u003ccode\u003efb09235\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5825d867707b432e1c93f85833ce8d3766c986c\"\u003e\u003ccode\u003ef5825d8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/452\"\u003e#452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.20.0...3.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `librt` from 0.6.3 to 0.7.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/47bf2eee4db0f93c6ab08a0b58159b228cb393f9\"\u003e\u003ccode\u003e47bf2ee\u003c/code\u003e\u003c/a\u003e Sync mypy and bump version to 0.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/87e36475ef8e8bc47945bd7067391a86fcc11d70\"\u003e\u003ccode\u003e87e3647\u003c/code\u003e\u003c/a\u003e Sync mypy and bump version to 0.7.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/62e0564391d9d93585c678e9b8bf19eb3aab2690\"\u003e\u003ccode\u003e62e0564\u003c/code\u003e\u003c/a\u003e Add some badges to README (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/25\"\u003e#25\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/7e053f113df4bf601b7a69e91c2a4a9888bf6d1a\"\u003e\u003ccode\u003e7e053f1\u003c/code\u003e\u003c/a\u003e Sync mypy to bring new setup structure (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/24\"\u003e#24\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/fd8972fb8a6db60d664d2c8af92510207cc6157a\"\u003e\u003ccode\u003efd8972f\u003c/code\u003e\u003c/a\u003e Force-include all C files (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/23\"\u003e#23\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/bd2a8e897e72bb291a2f3efdab112ec6f080dfc1\"\u003e\u003ccode\u003ebd2a8e8\u003c/code\u003e\u003c/a\u003e Include headers recursively (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/22\"\u003e#22\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/05b3cccb164a58db75c91c4da34945755a5b5d13\"\u003e\u003ccode\u003e05b3ccc\u003c/code\u003e\u003c/a\u003e Sync mypy including the stubs (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/abf92aab269421d4c11baa98d35c21e96567b2f1\"\u003e\u003ccode\u003eabf92aa\u003c/code\u003e\u003c/a\u003e Fix Markdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/fd8d11825501ecf51afb95edd1d51a2ee3cb2e24\"\u003e\u003ccode\u003efd8d118\u003c/code\u003e\u003c/a\u003e Add some developer notes\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mypyc/librt/compare/v0.6.3...v0.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nodeenv` from 1.9.1 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ekalinin/nodeenv/releases\"\u003enodeenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.10.0 - drop\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixed bugs 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse lowercase lookup for archmap by \u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements 🛠\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UV Virtual Environment support by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sh instead of bash by \u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport leading \u003ccode\u003ev\u003c/code\u003e in \u003ccode\u003e.node-version\u003c/code\u003e by \u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck host platform when finding \u003ccode\u003enode\u003c/code\u003e version by \u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\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/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/367\"\u003eekalinin/nodeenv#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nix6839\"\u003e\u003ccode\u003e@​nix6839\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/359\"\u003eekalinin/nodeenv#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/max0x53\"\u003e\u003ccode\u003e@​max0x53\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/363\"\u003eekalinin/nodeenv#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robmoss2k\"\u003e\u003ccode\u003e@​robmoss2k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/382\"\u003eekalinin/nodeenv#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/386\"\u003eekalinin/nodeenv#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WhyNotHugo\"\u003e\u003ccode\u003e@​WhyNotHugo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/389\"\u003eekalinin/nodeenv#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/pull/355\"\u003eekalinin/nodeenv#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/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ehttps://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.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/ekalinin/nodeenv/commit/9dee547f5e45c9d1b155e4351d165f2b504ae281\"\u003e\u003ccode\u003e9dee547\u003c/code\u003e\u003c/a\u003e chore: bump nodeenv version to 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/d45aabbf54139f5ecbaf9db05d3949d39999136e\"\u003e\u003ccode\u003ed45aabb\u003c/code\u003e\u003c/a\u003e chore: add pyright ignore comments for compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/55d6c21a6d56631c0c1d08a04d3c1ea3531ba832\"\u003e\u003ccode\u003e55d6c21\u003c/code\u003e\u003c/a\u003e chore: update AUTHORS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/5f694e6ac261f29233a28061e4af64669199721e\"\u003e\u003ccode\u003e5f694e6\u003c/code\u003e\u003c/a\u003e test: update test test_node_system_creates_shim\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/fa3fdfb1bf807d869795f5bf690359808cb5c529\"\u003e\u003ccode\u003efa3fdfb\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:ekalinin/nodeenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/e868dbe29cad74819615d039b78af21bb2ae431d\"\u003e\u003ccode\u003ee868dbe\u003c/code\u003e\u003c/a\u003e Replace additional use of \u003ccode\u003ewhich(1)\u003c/code\u003e with \u003ccode\u003eshutil.which()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ekalinin/nodeenv/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/b4cd00d453d9f4772c7c410dfbc57d7e757dad5e\"\u003e\u003ccode\u003eb4cd00d\u003c/code\u003e\u003c/a\u003e test: enhance activation tests for nodeenv with custom prompts and file handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/0b5ea9d55ad72ef30a5a7461e27b95c9453bd833\"\u003e\u003ccode\u003e0b5ea9d\u003c/code\u003e\u003c/a\u003e refactor(tests): improve readability of mock patches in nodeenv tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/37c0c304317b9a5646e1779d38b71c4c6928a0a5\"\u003e\u003ccode\u003e37c0c30\u003c/code\u003e\u003c/a\u003e ci: add GH workflow for testing and coverage in PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ekalinin/nodeenv/commit/326a7a4c1ced11fb3356cdd2c8511f9cdeb81ebc\"\u003e\u003ccode\u003e326a7a4\u003c/code\u003e\u003c/a\u003e test: add comprehensive tests for install_npm and install_npm_win functions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ekalinin/nodeenv/compare/1.9.1...1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.5.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix no-ctypes fallback on windows by \u003ca href=\"https://github.com/youknowone\"\u003e\u003ccode\u003e@​youknowone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/403\"\u003etox-dev/platformdirs#403\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/e4dbdb8c8ed8e448b7cdbbdce4a4ff5c54c5d685\"\u003e\u003ccode\u003ee4dbdb8\u003c/code\u003e\u003c/a\u003e Fix no-ctypes fallback on windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/4cc78aa59bbfa63a993213794f218dac327cf625\"\u003e\u003ccode\u003e4cc78aa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/b624d78851775551b6285c2759cb49325548459b\"\u003e\u003ccode\u003eb624d78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/eb06e7ed58b52ef3876a24393c6235e3928443ec\"\u003e\u003ccode\u003eeb06e7e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/85efbe91422e0b0df64f646dbfe9adb0dff07ed1\"\u003e\u003ccode\u003e85efbe9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/704c603bd3299283b2132f6b4d27daaa4fa2acbf\"\u003e\u003ccode\u003e704c603\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a01817810d92510cfa9cb9e51e7f38094e2fd9b9\"\u003e\u003ccode\u003ea018178\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9920b9bd6b1752d4b1420a3237385dcd3a6ea840\"\u003e\u003ccode\u003e9920b9b\u003c/code\u003e\u003c/a\u003e Bump the all group with 2 updates (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c80472486f4939b795f8552f6b4e629c3db1f538\"\u003e\u003ccode\u003ec804724\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a6a24895db89fe81d8863ca25d1ebeb101fce80b\"\u003e\u003ccode\u003ea6a2489\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruamel-yaml` from 0.18.16 to 0.19.0\n\nUpdates `soupsieve` from 2.8 to 2.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/soupsieve/releases\"\u003esoupsieve's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.8.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Changes in tests to accommodate latest Python HTML parser changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/f89979745e12e83dbb31dde910a0ad08e9c5c717\"\u003e\u003ccode\u003ef899797\u003c/code\u003e\u003c/a\u003e Adjust changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/1b964a850bb482cc183f3f70811b25487ba200ee\"\u003e\u003ccode\u003e1b964a8\u003c/code\u003e\u003c/a\u003e Switch to using Zensical for documents (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/soupsieve/commit/046ce54956a0c30120038561e53b40994d29de2c\"\u003e\u003ccode\u003e046ce54\u003c/code\u003e\u003c/a\u003e Adjustments for changes in HTML parser (\u003ca href=\"https://redirect.github.com/facelessuser/soupsieve/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/soupsieve/compare/2.8...2.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003cli\u003eIf you use custom decompressors, please make sure to update them to  respect the changed API of \u003ccode\u003eurllib3.response.ContentDecoder\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnabled retrieval, deletion, and membership testing in \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e using bytes keys. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded host and port information to string representations of \u003ccode\u003eHTTPConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 free-threading builds explicitly. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3696\"\u003e#3696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers\u003c/code\u003e. Removed the \u003ccode\u003eHTTPResponse.getheader(name, default)\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers.get(name, default)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3622\"\u003e#3622\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nben...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-libtest7/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-libtest7/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"6.0.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2025-12-22T06:18:57.000Z","version_change":"6.0.0 → 6.2.0","issue":{"uuid":"3752479264","node_id":"PR_kwDOKEvyJc66ErC9","number":309,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 44 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T06:15:37.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T06:18:57.000Z","updated_at":"2026-01-05T06:15:39.000Z","time_to_close":1209400,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":44,"packages":[{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.2","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2025.7.19","new_version":"2025.12.19","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","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.7","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.2.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.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.8.3","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.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.12","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"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.5.1","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":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.18.17"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.2","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"typing-extensions","old_version":"4.14.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.33.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"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 43 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.2` | `7.13.0` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.7.19` | `2025.12.19` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\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.7` | `0.14.10` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.2.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `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.2` | `3.4.4` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\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.5.1` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| ruamel-yaml | `0.18.14` | `0.18.17` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.2` | `0.50.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.1` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.33.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `black` from 25.1.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.2 to 7.13.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e\u003cem\u003e.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\n\u003ccode\u003eHenry Schreiner \u0026lt;pull 2100_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated: when coverage.py is installed, it creates three command entry\npoints: \u003ccode\u003ecoverage\u003c/code\u003e, \u003ccode\u003ecoverage3\u003c/code\u003e, and \u003ccode\u003ecoverage-3.10\u003c/code\u003e (if installed for\nPython 3.10). The second and third of these are not needed and will\neventually be removed. They still work for now, but print a message about\ntheir deprecation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1643: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1643\"\u003ecoveragepy/coveragepy#1643\u003c/a\u003e\n.. _pull 1952: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/1952\"\u003ecoveragepy/coveragepy#1952\u003c/a\u003e\n.. _pull 2100: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2100\"\u003ecoveragepy/coveragepy#2100\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-1b1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.1b1 — 2025-11-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: coverage.py now includes a permanent .pth file in the distribution which\nis installed with the code. This fixes \u003ccode\u003eissue 2084\u003c/code\u003e_: failure to patch for\nsubprocess measurement when site-packages is not writable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2084: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2084\"\u003ecoveragepy/coveragepy#2084\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.0 — 2025-11-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now shows separate coverage totals for statements and\nbranches, as well as the usual combined coverage percentage. Thanks to Ryuta\nOtsuka for the \u003ccode\u003ediscussion \u0026lt;issue 2081_\u0026gt;\u003c/code\u003e_ and the \u003ccode\u003eimplementation \u0026lt;pull 2085_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe JSON report now includes separate coverage totals for statements and\nbranches, thanks to \u003ccode\u003eRyuta Otsuka \u0026lt;pull 2090_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eexcept*\u003c/code\u003e clauses were not handled properly under the \u0026quot;sysmon\u0026quot;\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/coveragepy/coveragepy/commit/52fde9c828b5d1d17d2d49589a65bd2644402863\"\u003e\u003ccode\u003e52fde9c\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/69de0097f1ec77781bcd489bb9adb493a7db56a1\"\u003e\u003ccode\u003e69de009\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/01387fc66199f5bd885143c6ff1de55e587adefa\"\u003e\u003ccode\u003e01387fc\u003c/code\u003e\u003c/a\u003e docs: tweak changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/60206e8f8da2796a9472e214b003d42adcebd782\"\u003e\u003ccode\u003e60206e8\u003c/code\u003e\u003c/a\u003e chore: make edit_for_release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/78cfd57fe534bac8fd84b1b58b7a7e7a39f07974\"\u003e\u003ccode\u003e78cfd57\u003c/code\u003e\u003c/a\u003e docs: tweak CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/21e726fcfbb5282bf9f72f44c764dd7bcfb7d9d4\"\u003e\u003ccode\u003e21e726f\u003c/code\u003e\u003c/a\u003e feat: support \u003ccode\u003e.coveragerc.toml\u003c/code\u003e for configuration (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3914e5055f44e17e5753a7643fc0cefcc948bb2d\"\u003e\u003ccode\u003e3914e50\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d5e7c3ad0d557de2aff73d33a59f31a80b36ba6c\"\u003e\u003ccode\u003ed5e7c3a\u003c/code\u003e\u003c/a\u003e test: no need to group tests by needs_pth\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ed516c4a6568017d7e36cdcfb007b904687fda59\"\u003e\u003ccode\u003eed516c4\u003c/code\u003e\u003c/a\u003e test: fix metacov again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/da833a18b7670c2df84ab437b72560b627610063\"\u003e\u003ccode\u003eda833a1\u003c/code\u003e\u003c/a\u003e fix: use Development Status classifier properly. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2101\"\u003e#2101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.2...7.13.0\"\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.12.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/releases\"\u003efuro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the supported Sphinx version range\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.09.25...2025.12.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2025.09.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epage.html: fix invalid HTML5 by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebase.html: fix trailing slash on void elements by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/895\"\u003epradyunsg/furo#895\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e_scaffold.sass: remove old scrollbar selectors by \u003ca href=\"https://github.com/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/892\"\u003epradyunsg/furo#892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Blender to \u0026quot;used by\u0026quot; section by \u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\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/haampie\"\u003e\u003ccode\u003e@​haampie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/894\"\u003epradyunsg/furo#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/struffel\"\u003e\u003ccode\u003e@​struffel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pradyunsg/furo/pull/898\"\u003epradyunsg/furo#898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\"\u003ehttps://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\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/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.12.19 -- Harmonious Honeydew\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 9.\u003c/li\u003e\n\u003cli\u003eDrop support for Sphinx 6.\u003c/li\u003e\n\u003c/ul\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\u003cli\u003e✨ Add a view this page button.\u003c/li\u003e\n\u003cli\u003e✨ Add colours and highlighting to \u0026quot;version modified\u0026quot; API helpers.\u003c/li\u003e\n\u003cli\u003e✨ Add release information to various customisation knobs.\u003c/li\u003e\n\u003cli\u003eMake all icons bigger and use a thinner stroke with them.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.04.27 -- Bold Burgundy\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a skip to content link.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/dd9e9f920494f24b9b8dd954ec9d07e0b9d12817\"\u003e\u003ccode\u003edd9e9f9\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d43f7e98577aa2db8580a83a4d4c3dcf54617de9\"\u003e\u003ccode\u003ed43f7e9\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d27cab5e448c44e366577a80bf99beee6fa941a5\"\u003e\u003ccode\u003ed27cab5\u003c/code\u003e\u003c/a\u003e Bump the supported Sphinx version range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/12f288eb8c8c57dc751e208545b07f1584bb29a7\"\u003e\u003ccode\u003e12f288e\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.12.19\"\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.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.17.1...v1.19.1\"\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.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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.7 to 0.14.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[formatter] Fluent formatting of method chains (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Keep lambda parameters on one line and parenthesize the body if it expands (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21385\"\u003e#21385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-implicit-str-concat\u003c/code\u003e] New rule to prevent implicit string concatenation in collections (\u003ccode\u003eISC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21972\"\u003e#21972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make fixes unsafe when types change in compound statements (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22009\"\u003e#22009\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Extend support for \u003ccode\u003ePath.open\u003c/code\u003e (\u003ccode\u003eFURB101\u003c/code\u003e, \u003ccode\u003eFURB103\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21080\"\u003e#21080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix parsing named Unicode escape sequences (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21901\"\u003e#21901\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Ignore \u003ccode\u003eruff:disable\u003c/code\u003e and \u003ccode\u003eruff:enable\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22038\"\u003e#22038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without an expected exception type (\u003ccode\u003ePT010\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21964\"\u003e#21964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Annotated name cannot be global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20868\"\u003e#20868\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003euv\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e to the Ruff README (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21996\"\u003e#21996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument known lambda formatting deviations from Black (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21954\"\u003e#21954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003esetup.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22024\"\u003e#22024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix broken link (\u003ccode\u003eS704\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22039\"\u003e#22039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix playground Share button showing \u0026quot;Copied!\u0026quot; before clipboard copy completes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21942\"\u003e#21942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliecloudberry\"\u003e\u003ccode\u003e@​charliecloudberry\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phongddo\"\u003e\u003ccode\u003e@​phongddo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PeterJCLaw\"\u003e\u003ccode\u003e@​PeterJCLaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/45bbb4cbffe73cf925d4579c2e3eb413e0539390\"\u003e\u003ccode\u003e45bbb4c\u003c/code\u003e\u003c/a\u003e Bump 0.14.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22058\"\u003e#22058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/42b972753aa9737140d3c715dc1fa2a4d20eba02\"\u003e\u003ccode\u003e42b9727\u003c/code\u003e\u003c/a\u003e [ty] Use datatest instead of dirtest (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21937\"\u003e#21937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f7ec1784005ba8659203155dc0c195f746f8b45b\"\u003e\u003ccode\u003ef7ec178\u003c/code\u003e\u003c/a\u003e [ty] Gracefully handle client requests that can't be deserialized (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22051\"\u003e#22051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c31516473296a8b745af946b827d3342ef81060f\"\u003e\u003ccode\u003ec315164\u003c/code\u003e\u003c/a\u003e [ty] Don't suggest keyword statements when only expressions are valid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb1955e98c5bd35a322f58fcab5d68aab255a7a4\"\u003e\u003ccode\u003ebb1955e\u003c/code\u003e\u003c/a\u003e [ty] Use cursor context in a few more places...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/070e08a043f47845f60632b528ef27cc37078405\"\u003e\u003ccode\u003e070e08a\u003c/code\u003e\u003c/a\u003e [ty] Move \u003ccode\u003ecompletion\u003c/code\u003e function to the top\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bab3924833c9f432776f93d4ed83b6cfbafc20e3\"\u003e\u003ccode\u003ebab3924\u003c/code\u003e\u003c/a\u003e [ty] Refactor completion generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10748b2fdb021e4d8e548f09e8e182c69d7c1f5a\"\u003e\u003ccode\u003e10748b2\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Allow \u003ccode\u003ematch\u003c/code\u003e and \u003ccode\u003echeck\u003c/code\u003e keyword arguments without a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/56539db5206c519d80446d96155ef832689c5a6e\"\u003e\u003ccode\u003e56539db\u003c/code\u003e\u003c/a\u003e [ty] Fix some configuration panics in the LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22040\"\u003e#22040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8d32ad1cab7b78675e8fe56740013d61e315142c\"\u003e\u003ccode\u003e8d32ad1\u003c/code\u003e\u003c/a\u003e [ty] Add support for attribute docstrings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22036\"\u003e#22036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.7...0.14.10\"\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 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/58473a8dac250898e1dc7dfac5622dc938264bb4\"\u003e\u003ccode\u003e58473a8\u003c/code\u003e\u003c/a\u003e Migrate to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/0d4f938d799a669658fc2b0ef3ede100d9abf5ab\"\u003e\u003ccode\u003e0d4f938\u003c/code\u003e\u003c/a\u003e Drop support for Python \u0026lt; 3.10, add Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/073353abfc0f6a72ca3fc33b7272072ec422cccb\"\u003e\u003ccode\u003e073353a\u003c/code\u003e\u003c/a\u003e Migrate setuptools, mypy configuration to pyproject.toml\u003c/li\u003e\n\u003cli\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-pypitemplate-instance/pull/309","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-pypitemplate-instance/issues/309","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/309/packages"}},{"old_version":"6.0.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2025-12-17T14:13:37.000Z","version_change":"6.0.0 → 6.2.0","issue":{"uuid":"3739088647","node_id":"PR_kwDOO_6LKs65YYsv","number":13,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 67 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-01T04:41:49.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-17T14:13:37.000Z","updated_at":"2026-01-01T04:41:51.000Z","time_to_close":1261692,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":67,"packages":[{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"scipy","old_version":"1.16.0","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"gmsh","old_version":"4.14.0","new_version":"4.15.0"},{"name":"pyvista","old_version":"0.46.2","new_version":"0.46.4","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pypardiso","old_version":"0.4.6","new_version":"0.4.7","repository_url":"https://github.com/haasad/PyPardiso"},{"name":"pyside6","old_version":"6.9.2","new_version":"6.10.1"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"furo","old_version":"2024.8.6","new_version":"2025.9.25","repository_url":"https://github.com/pradyunsg/furo"},{"name":"mypy","old_version":"1.16.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","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.0","new_version":"0.14.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx","old_version":"8.1.3","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-autodoc-typehints","old_version":"3.0.1","new_version":"3.5.2","repository_url":"https://github.com/tox-dev/sphinx-autodoc-typehints"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.2.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":"anyio","old_version":"4.9.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"beautifulsoup4","old_version":"4.13.4","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.6.15","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.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.58.4","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"identify","old_version":"2.6.12","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"intel-openmp","old_version":"2025.2.1","new_version":"2025.3.1"},{"name":"ipython","old_version":"8.37.0","new_version":"9.8.0","repository_url":"https://github.com/ipython/ipython"},{"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-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"mdit-py-plugins","old_version":"0.4.2","new_version":"0.5.0","repository_url":"https://github.com/executablebooks/mdit-py-plugins"},{"name":"mkl","old_version":"2025.2.0","new_version":"2025.3.0","repository_url":"https://github.com/uxlfoundation/oneMath"},{"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":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.1.0","new_version":"14.2.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.18.16"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.15"},{"name":"scooby","old_version":"0.10.1","new_version":"0.11.0","repository_url":"https://github.com/banesullivan/scooby"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"starlette","old_version":"0.47.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"tbb","old_version":"2022.2.0","new_version":"2022.3.0","repository_url":"https://github.com/oneapi-src/oneTBB"},{"name":"tcmlib","old_version":"1.4.0","new_version":"1.4.1"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.34.3","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.31.2","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"vtk","old_version":"9.5.0","new_version":"9.5.2"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"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 63 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.0` | `1.16.3` |\n| [gmsh](https://gmsh.info) | `4.14.0` | `4.15.0` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.46.2` | `0.46.4` |\n| [pypardiso](https://github.com/haasad/PyPardiso) | `0.4.6` | `0.4.7` |\n| [pyside6](https://pyside.org) | `6.9.2` | `6.10.1` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.0` |\n| [furo](https://github.com/pradyunsg/furo) | `2024.8.6` | `2025.9.25` |\n| [mypy](https://github.com/python/mypy) | `1.16.1` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\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.0` | `0.14.9` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `9.0.2` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.1.3` | `8.2.3` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-autodoc-typehints](https://github.com/tox-dev/sphinx-autodoc-typehints) | `3.0.1` | `3.5.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.2.0` |\n| [xdoctest](https://github.com/Erotemic/xdoctest) | `1.2.0` | `1.3.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.9.0` | `4.12.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.13.4` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `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.2` | `3.4.4` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.20.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.4` | `4.61.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.12` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [intel-openmp](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html) | `2025.2.1` | `2025.3.1` |\n| [ipython](https://github.com/ipython/ipython) | `8.37.0` | `9.8.0` |\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-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [mdit-py-plugins](https://github.com/executablebooks/mdit-py-plugins) | `0.4.2` | `0.5.0` |\n| [mkl](https://github.com/uxlfoundation/oneMath) | `2025.2.0` | `2025.3.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| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.1.0` | `14.2.0` |\n| ruamel-yaml | `0.18.14` | `0.18.16` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.15` |\n| [scooby](https://github.com/banesullivan/scooby) | `0.10.1` | `0.11.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8` |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.1` | `0.50.0` |\n| [tbb](https://github.com/oneapi-src/oneTBB) | `2022.2.0` | `2022.3.0` |\n| [tcmlib](https://oneapi-src.github.io/oneTBB/GSG/next_steps.html) | `1.4.0` | `1.4.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.3` | `0.38.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.31.2` | `20.35.4` |\n| [vtk](https://vtk.org) | `9.5.0` | `9.5.2` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n\n\nUpdates `click` from 8.2.1 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/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\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 \u003ccode\u003eCliRunner\u003c/code\u003e. :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.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.2.1...8.3.1\"\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.8\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.8\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe primary highlights of this release are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly allow freethreaded mode in the MacOS backend\u003c/li\u003e\n\u003cli\u003eBetter error handling for MacOS backend\u003c/li\u003e\n\u003c/ul\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/1392cbe3c79cdb93f9282747841d648770f60249\"\u003e\u003ccode\u003e1392cbe\u003c/code\u003e\u003c/a\u003e REL: v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/0b9ebb35f8310f22eb7f932b2ae14befb1f40b6f\"\u003e\u003ccode\u003e0b9ebb3\u003c/code\u003e\u003c/a\u003e Doc release prep v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/bc7b5c4377ce2544e8936255c51c1ff7cd0c5a85\"\u003e\u003ccode\u003ebc7b5c4\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.7-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/86b38d3f29aa2af2ddcbd1895433117caa0fba47\"\u003e\u003ccode\u003e86b38d3\u003c/code\u003e\u003c/a\u003e Github stats v3.10.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9512188e42f9d221f83869113c44f99fe1832a0f\"\u003e\u003ccode\u003e9512188\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30717\"\u003e#30717\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30714-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d300769285e2c920804134e40ec83837eabe16d8\"\u003e\u003ccode\u003ed300769\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30714\"\u003e#30714\u003c/a\u003e: FIX: Gracefully handle numpy arrays as input to check_in_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/799bc9561daea5b5578f888817cb45c9321a0463\"\u003e\u003ccode\u003e799bc95\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30711\"\u003e#30711\u003c/a\u003e from ngoldbaum/v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/134000ba19a4354da2ad1084627039e05c936754\"\u003e\u003ccode\u003e134000b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30697\"\u003e#30697\u003c/a\u003e from ngoldbaum/fix-plotting-on-worker-threads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5b8e219d70f1daa443330eb6a5a6211506b37362\"\u003e\u003ccode\u003e5b8e219\u003c/code\u003e\u003c/a\u003e TST: Run macosx backends in a subprocess\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/878e71a95006d3aec9505f3bd836968951fdd163\"\u003e\u003ccode\u003e878e71a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29810\"\u003e#29810\u003c/a\u003e: Declare free-threaded support in MacOS backend extension ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.3...v3.10.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.0 to 1.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.16.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.3\u003c/code\u003e is a bug-fix release with no new features compared to \u003ccode\u003e1.16.2\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eChrisAB (1) +\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (3)\u003c/li\u003e\n\u003cli\u003eMatt Haberland (8)\u003c/li\u003e\n\u003cli\u003eNick ODell (2)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (1)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (28)\u003c/li\u003e\n\u003cli\u003eLucas Roberts (2)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 8 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003cp\u003eThe full issue and pull request lists, and the release asset hashes are available\nin the associated \u003ccode\u003eREADME.txt\u003c/code\u003e file.\u003c/p\u003e\n\u003ch1\u003eSciPy 1.16.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.16.2\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.16.1\u003c/code\u003e. This is the first stable release of\nSciPy to provide Windows on ARM wheels on PyPI.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eDietrich Brunn (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (6)\u003c/li\u003e\n\u003cli\u003eAdam Jones (1)\u003c/li\u003e\n\u003cli\u003eGleb Khmyznikov (1) +\u003c/li\u003e\n\u003cli\u003eJost Migenda (1) +\u003c/li\u003e\n\u003cli\u003enewyork_loki (1)\u003c/li\u003e\n\u003cli\u003eNick ODell (3)\u003c/li\u003e\n\u003cli\u003eDimitri Papadopoulos Orfanos (1)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (2)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (26)\u003c/li\u003e\n\u003cli\u003eMugunthan Selvanayagam (1) +\u003c/li\u003e\n\u003cli\u003eShuhei Watanabe (1) +\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 12 people contributed to this release.\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/scipy/scipy/commit/b9105ccc2237f57acb1060202cd77f6dd264fb34\"\u003e\u003ccode\u003eb9105cc\u003c/code\u003e\u003c/a\u003e REL: 1.16.3 rel commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/4b7699ceb2e7070e732f9a7e24aab46683f41305\"\u003e\u003ccode\u003e4b7699c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23805\"\u003e#23805\u003c/a\u003e from tylerjereddy/treddy_backports_1.16.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/874b75b11d09373c4e7b4fd12975f27d52af4714\"\u003e\u003ccode\u003e874b75b\u003c/code\u003e\u003c/a\u003e MAINT: PR 23805 wheel builds [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/de06a58d65ee0c0266ceb3adaca82c5405206bc4\"\u003e\u003ccode\u003ede06a58\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f642304717d140ede11bb095ee7cc5754e075d1d\"\u003e\u003ccode\u003ef642304\u003c/code\u003e\u003c/a\u003e TST: linalg.svd: skip on 32-bit due to limited memory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/df479083772fbfae5840c198f53ee938ffcd6dc6\"\u003e\u003ccode\u003edf47908\u003c/code\u003e\u003c/a\u003e CI: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f5840635ec2ae1d3ff023159c5e58936e9a2303d\"\u003e\u003ccode\u003ef584063\u003c/code\u003e\u003c/a\u003e TST: stats.boxcox_llf: bump test tolerance for Accelerate (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/23864\"\u003e#23864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/fc60b2f449100a55bdb23777b6b5adc3cb38d61a\"\u003e\u003ccode\u003efc60b2f\u003c/code\u003e\u003c/a\u003e DOC: PR 23805 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/0dd12ec9b92338005959bde3611375ceea18f73a\"\u003e\u003ccode\u003e0dd12ec\u003c/code\u003e\u003c/a\u003e BLD: stats.multivariate_normal: silence pythran build warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/d3b1e625735c1e7c8e9963f5f7c2dd5755636f9d\"\u003e\u003ccode\u003ed3b1e62\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;BLD: stats.multivariate_normal: suppress pythran build warning\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.0...v1.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gmsh` from 4.14.0 to 4.15.0\n\nUpdates `pyvista` from 0.46.2 to 0.46.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyvista/pyvista/releases\"\u003epyvista's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.46.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 by \u003ca href=\"https://github.com/user27182\"\u003e\u003ccode\u003e@​user27182\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyvista/pyvista/pull/8041\"\u003epyvista/pyvista#8041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.3...v0.46.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.46.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003ePyVista \u003ccode\u003e0.46.0\u003c/code\u003e introduced a breaking change by requiring the use of \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e for setting new attributes (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/7716\"\u003e#7716\u003c/a\u003e). This patch release \u003ccode\u003e0.46.3\u003c/code\u003e relaxes this requirement by only requiring this for setting new \u003cem\u003epublic\u003c/em\u003e attributes. Private attributes (with a \u003ccode\u003e_\u003c/code\u003e prefix) can be set without the need to use \u003ccode\u003epyvista.set_new_attribute\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\"\u003ehttps://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.3\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/pyvista/pyvista/commit/eabebf9d2977ee0027d6f8e4d1c03ab39f03e8a9\"\u003e\u003ccode\u003eeabebf9\u003c/code\u003e\u003c/a\u003e Fix obb tree cache (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8039\"\u003e#8039\u003c/a\u003e) backport to v0.46 (\u003ca href=\"https://redirect.github.com/pyvista/pyvista/issues/8041\"\u003e#8041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/a6fa92498a9896bdba7d495b39273151c6e68cfa\"\u003e\u003ccode\u003ea6fa924\u003c/code\u003e\u003c/a\u003e Allow setting new private attributes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyvista/pyvista/commit/dfa05fe8c21b0f72516b8dd7e1695fce8633b000\"\u003e\u003ccode\u003edfa05fe\u003c/code\u003e\u003c/a\u003e Bump version to 0.46.3\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyvista/pyvista/compare/v0.46.2...v0.46.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypardiso` from 0.4.6 to 0.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/haasad/PyPardiso/releases\"\u003epypardiso's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.7\u003c/h2\u003e\n\u003cp\u003e5 changes since v0.4.6\u003c/p\u003e\n\u003ch2\u003e🚧 Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for macOS (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix failing tests for pip installed scipy (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type mismatch for sparse arrays (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📄 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse a valid SPDX identifier as license classifier (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚚 CI and Packaging\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun tests for currently supported Python versions (\u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\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/haasad/PyPardiso/commit/d78ba0108c09a391b99567877be7a45aefc8beb4\"\u003e\u003ccode\u003ed78ba01\u003c/code\u003e\u003c/a\u003e Fix license configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/2b287ca57b1c9919ca927bc6eeb8a136badb9260\"\u003e\u003ccode\u003e2b287ca\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/79\"\u003e#79\u003c/a\u003e from urob/fix-type-mismatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/04effe91176b7b2e3cf7a85be5fc97be4ec39450\"\u003e\u003ccode\u003e04effe9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/81\"\u003e#81\u003c/a\u003e from ecederstrand/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/405844b87dbbf111a77668088cac4d4900fef5ce\"\u003e\u003ccode\u003e405844b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/84\"\u003e#84\u003c/a\u003e from haasad/maint/python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/f5c7999884b5e8eb71e64ce39fb43f1ff8dd755a\"\u003e\u003ccode\u003ef5c7999\u003c/code\u003e\u003c/a\u003e Run tests for currently supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/d5eec2fdb417bb331ae5de2358ffbc691bb20cde\"\u003e\u003ccode\u003ed5eec2f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/83\"\u003e#83\u003c/a\u003e from haasad/breaking/remove-macos-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/c1da59caa1e53aa527aab261662087b2f7465ec6\"\u003e\u003ccode\u003ec1da59c\u003c/code\u003e\u003c/a\u003e Remove support for macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/53b301b48cadf086e0056c34fc6bf24a21566b35\"\u003e\u003ccode\u003e53b301b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haasad/PyPardiso/issues/82\"\u003e#82\u003c/a\u003e from haasad/fix/scipy-error-groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/5a759de7aba8d91ed6e2d1b2585686deed12f4f0\"\u003e\u003ccode\u003e5a759de\u003c/code\u003e\u003c/a\u003e Update changelog config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haasad/PyPardiso/commit/a3ec43e43b4110b4696f44b0cb7207441af7bf58\"\u003e\u003ccode\u003ea3ec43e\u003c/code\u003e\u003c/a\u003e Test for ValueError or TypeError\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haasad/PyPardiso/compare/v0.4.6...v0.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyside6` from 6.9.2 to 6.10.1\n\nUpdates `black` from 25.1.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.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.1 to 7.13.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e\u003cem\u003e.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\n\u003ccode\u003eHenry Schreiner \u0026lt;pull 2100_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated: when coverage.py is installed, it creates three command entry\npoints: \u003ccode\u003ecoverage\u003c/code\u003e, \u003ccode\u003ecoverage3\u003c/code\u003e, and \u003ccode\u003ecoverage-3.10\u003c/code\u003e (if installed for\nPython 3.10). The second and third of these are not needed and will\neventually be removed. They still work for now, but print a message about\ntheir deprecation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1643: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1643\"\u003ecoveragepy/coveragepy#1643\u003c/a\u003e\n.. _pull 1952: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/1952\"\u003ecoveragepy/coveragepy#1952\u003c/a\u003e\n.. _pull 2100: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2100\"\u003ecoveragepy/coveragepy#2100\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-1b1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.1b1 — 2025-11-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: coverage.py now includes a permanent .pth file in the distribution which\nis installed with the code. This fixes \u003ccode\u003eissue 2084\u003c/code\u003e_: failure to patch for\nsubprocess measurement when site-packages is not writable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2084: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2084\"\u003ecoveragepy/coveragepy#2084\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.0 — 2025-11-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now shows separate coverage totals for statements and\nbranches, as well as the usual combined coverage percentage. Thanks to Ryuta\nOtsuka for the \u003ccode\u003ediscussion \u0026lt;issue 2081_\u0026gt;\u003c/code\u003e_ and the \u003ccode\u003eimplementation \u0026lt;pull 2085_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe JSON report now includes separate coverage totals for statements and\nbranches, thanks to \u003ccode\u003eRyuta Otsuka \u0026lt;pull 2090_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eexcept*\u003c/code\u003e clauses were not handled properly under the \u0026quot;sysmon\u0026quot;\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/coveragepy/coveragepy/commit/52fde9c828b5d1d17d2d49589a65bd2644402863\"\u003e\u003ccode\u003e52fde9c\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/69de0097f1ec77781bcd489bb9adb493a7db56a1\"\u003e\u003ccode\u003e69de009\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/01387fc66199f5bd885143c6ff1de55e587adefa\"\u003e\u003ccode\u003e01387fc\u003c/code\u003e\u003c/a\u003e docs: tweak changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/60206e8f8da2796a9472e214b003d42adcebd782\"\u003e\u003ccode\u003e60206e8\u003c/code\u003e\u003c/a\u003e chore: make edit_for_release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/78cfd57fe534bac8fd84b1b58b7a7e7a39f07974\"\u003e\u003ccode\u003e78cfd57\u003c/code\u003e\u003c/a\u003e docs: tweak CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/21e726fcfbb5282bf9f72f44c764dd7bcfb7d9d4\"\u003e\u003ccode\u003e21e726f\u003c/code\u003e\u003c/a\u003e feat: support \u003ccode\u003e.coveragerc.toml\u003c/code\u003e for configuration (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3914e5055f44e17e5753a7643fc0cefcc948bb2d\"\u003e\u003ccode\u003e3914e50\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d5e7c3ad0d557de2aff73d33a59f31a80b36ba6c\"\u003e\u003ccode\u003ed5e7c3a\u003c/code\u003e\u003c/a\u003e test: no need to group tests by needs_pth\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ed516c4a6568017d7e36cdcfb007b904687fda59\"\u003e\u003ccode\u003eed516c4\u003c/code\u003e\u003c/a\u003e test: fix metacov again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/da833a18b7670c2df84ab437b72560b627610063\"\u003e\u003ccode\u003eda833a1\u003c/code\u003e\u003c/a\u003e fix: use Development Status classifier properly. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2101\"\u003e#2101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2024.8.6 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\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/e2cbfce534e434c9743fae85839790ffb8fea2a2\"\u003e\u003ccode\u003ee2cbfce\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.07.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/2753741615d13f00f2f5a361d9794727558d82ee\"\u003e\u003ccode\u003e2753741\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2024.08.06...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.16.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.1...v1.19.1\"\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.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `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\u003cco...\n\n_Description has been truncated_","html_url":"https://github.com/DanBeranek/temperatureanalysis/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanBeranek%2Ftemperatureanalysis/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2025-12-17T02:10:22.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3737043190","node_id":"PR_kwDOF0i5Q865Remz","number":616,"state":"closed","title":"chore: Bump the python-packages group with 23 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-07T02:07:04.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-17T02:10:22.000Z","updated_at":"2026-01-07T02:07:06.000Z","time_to_close":1814202,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: Bump","group_name":"python-packages","update_count":23,"packages":[{"name":"awesomeversion","old_version":"25.5.0","new_version":"25.8.0","repository_url":"https://github.com/ludeeus/awesomeversion"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"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.7","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"jupyterlab","old_version":"4.4.7","new_version":"4.5.1","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"python-lsp-server","old_version":"1.13.1","new_version":"1.14.0"},{"name":"reuse","old_version":"5.1.1","new_version":"6.2.0","repository_url":"https://github.com/fsfe/reuse-tool"},{"name":"ruff","old_version":"0.13.1","new_version":"0.14.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-colorama","old_version":"0.4.15.20240311","new_version":"0.4.15.20250801","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-docutils","old_version":"0.21.0.20250604","new_version":"0.22.3.20251115","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-lxml","old_version":"2025.3.30","new_version":"2025.11.25","repository_url":"https://github.com/abelcheung/types-lxml"},{"name":"types-pygments","old_version":"2.19.0.20250516","new_version":"2.19.0.20251121","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-pytz","old_version":"2025.2.0.20250516","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-pyyaml","old_version":"6.0.12.20250516","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250611","new_version":"2.32.4.20250913","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"68.0.0.1","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-six","old_version":"1.17.0.20250515","new_version":"1.17.0.20251009","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"furo","old_version":"2025.7.19","new_version":"2025.9.25","repository_url":"https://github.com/pradyunsg/furo"},{"name":"nbsphinx","old_version":"0.9.7","new_version":"0.9.8","repository_url":"https://github.com/spatialaudio/nbsphinx"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 23 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [awesomeversion](https://github.com/ludeeus/awesomeversion) | `25.5.0` | `25.8.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.7` | `4.5.1` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.7` | `4.5.1` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [python-lsp-server[rope]](https://github.com/python-lsp/python-lsp-server) | `1.13.1` | `1.14.0` |\n| [reuse](https://github.com/fsfe/reuse-tool) | `5.1.1` | `6.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.1` | `0.14.9` |\n| [types-colorama](https://github.com/typeshed-internal/stub_uploader) | `0.4.15.20240311` | `0.4.15.20250801` |\n| [types-docutils](https://github.com/typeshed-internal/stub_uploader) | `0.21.0.20250604` | `0.22.3.20251115` |\n| [types-lxml](https://github.com/abelcheung/types-lxml) | `2025.3.30` | `2025.11.25` |\n| [types-pygments](https://github.com/typeshed-internal/stub_uploader) | `2.19.0.20250516` | `2.19.0.20251121` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250516` | `2025.2.0.20251108` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250516` | `6.0.12.20250915` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250611` | `2.32.4.20250913` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `68.0.0.1` | `80.9.0.20250822` |\n| [types-six](https://github.com/typeshed-internal/stub_uploader) | `1.17.0.20250515` | `1.17.0.20251009` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.7.19` | `2025.9.25` |\n| [nbsphinx](https://github.com/spatialaudio/nbsphinx) | `0.9.7` | `0.9.8` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n\nUpdates `awesomeversion` from 25.5.0 to 25.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ludeeus/awesomeversion/releases\"\u003eawesomeversion's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.8.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor AwesomeVersion comparison methods and optimize regex patterns for performance by \u003ca href=\"https://github.com/ludeeus\"\u003e\u003ccode\u003e@​ludeeus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/420\"\u003eludeeus/awesomeversion#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor AwesomeVersion comparison methods for improved validation and strategy handling by \u003ca href=\"https://github.com/ludeeus\"\u003e\u003ccode\u003e@​ludeeus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/421\"\u003eludeeus/awesomeversion#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace poetry with uv by \u003ca href=\"https://github.com/ludeeus\"\u003e\u003ccode\u003e@​ludeeus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/424\"\u003eludeeus/awesomeversion#424\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pr template by \u003ca href=\"https://github.com/ludeeus\"\u003e\u003ccode\u003e@​ludeeus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/431\"\u003eludeeus/awesomeversion#431\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix compound modifier comparison by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/423\"\u003eludeeus/awesomeversion#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/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/427\"\u003eludeeus/awesomeversion#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/pull/423\"\u003eludeeus/awesomeversion#423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ludeeus/awesomeversion/compare/25.5.0...25.8.0\"\u003ehttps://github.com/ludeeus/awesomeversion/compare/25.5.0...25.8.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/ludeeus/awesomeversion/commit/88a09dd69d61d836fedb025b07efca38a2e82f50\"\u003e\u003ccode\u003e88a09dd\u003c/code\u003e\u003c/a\u003e Simplify the demo (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/a30855ff549544b2c156625bd2254d2420cea00f\"\u003e\u003ccode\u003ea30855f\u003c/code\u003e\u003c/a\u003e Update dependency font-awesome to v7 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/440\"\u003e#440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/242639682fcd9658f821ac84ed0c54d0dec3d1d3\"\u003e\u003ccode\u003e2426396\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v6.4.3 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/441\"\u003e#441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/3eb927a8900e05a6c60199332f05f741ebe0aa66\"\u003e\u003ccode\u003e3eb927a\u003c/code\u003e\u003c/a\u003e Update CodSpeedHQ/action action to v3.8.0 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/d83349bfce594c5bfa1b985ab02cf6f44a187d8d\"\u003e\u003ccode\u003ed83349b\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v6.4.1 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/0be8e241c2743587a3b1c1c174139c7b44ab96d6\"\u003e\u003ccode\u003e0be8e24\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v6.4.0 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/437\"\u003e#437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/c2c1eeb245547381bde7b477c88203b8f9e92e2a\"\u003e\u003ccode\u003ec2c1eeb\u003c/code\u003e\u003c/a\u003e Update CodSpeedHQ/action action to v3.7.0 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/436\"\u003e#436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/469d70e4bae4f4afb32ed1826fcf9141848aae9f\"\u003e\u003ccode\u003e469d70e\u003c/code\u003e\u003c/a\u003e Update CodSpeedHQ/action action to v3.6.1 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/52a00a0b19c0f5c808a6861b553f38726d674aa7\"\u003e\u003ccode\u003e52a00a0\u003c/code\u003e\u003c/a\u003e Add benchmarks for version sorting, edge cases, operations, and strategy dete...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ludeeus/awesomeversion/commit/9986274d2984a6883e11908c8222dc28bfca57d4\"\u003e\u003ccode\u003e9986274\u003c/code\u003e\u003c/a\u003e Update dependency font-awesome to v6.7.2 (\u003ca href=\"https://redirect.github.com/ludeeus/awesomeversion/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ludeeus/awesomeversion/compare/25.5.0...25.8.0\"\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 `pillow` from 11.2.1 to 12.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.0.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for FreeType \u0026lt;= 2.9.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9159\"\u003e#9159\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9119\"\u003e#9119\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRemove deprecations for Pillow 12.0.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9053\"\u003e#9053\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate Image._show \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9186\"\u003e#9186\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDeprecate ImageCmsProfile product_name and product_info \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8995\"\u003e#8995\u003c/a\u003e [\u003ca href=\"https://github.com/lukegb\"\u003e\u003ccode\u003e@​lukegb\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImagingHistogramInstance can use two bands \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9251\"\u003e#9251\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate 12.0.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9247\"\u003e#9247\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded ImageDraw alpha channel examples \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9201\"\u003e#9201\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9230\"\u003e#9230\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9209\"\u003e#9209\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd GitHub profile link to release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9197\"\u003e#9197\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSplit versionadded info \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9190\"\u003e#9190\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocument ImageFile.MAXBLOCK \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9163\"\u003e#9163\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated macOS version in CI targets \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9157\"\u003e#9157\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typos \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9135\"\u003e#9135\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded \u0026quot;Colors\u0026quot; to concepts \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9067\"\u003e#9067\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9068\"\u003e#9068\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eThanks, folks! \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9056\"\u003e#9056\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSetup nit: \u0026quot;fork\u0026quot; should be lowercased \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9055\"\u003e#9055\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9246\"\u003e#9246\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9233\"\u003e#9233\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003epre-commit-ci[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 12.1.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9218\"\u003e#9218\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libtiff to 4.7.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9222\"\u003e#9222\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate FreeType to 2.14.1 on macOS and Linux wheels \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9217\"\u003e#9217\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9219\"\u003e#9219\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.6.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9202\"\u003e#9202\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate openjpeg to 2.5.4 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9215\"\u003e#9215\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 11.5.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9203\"\u003e#9203\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.18.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9213\"\u003e#9213\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.18.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9207\"\u003e#9207\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9194\"\u003e#9194\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 11.4.5 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9150\"\u003e#9150\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.2.5 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9140\"\u003e#9140\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate raqm to 0.10.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9137\"\u003e#9137\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9188\"\u003e#9188\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9180\"\u003e#9180\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003epre-commit-ci[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/693df7b42c666f88c719f9973be0ad71607328e0\"\u003e\u003ccode\u003e693df7b\u003c/code\u003e\u003c/a\u003e 12.0.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/d175bb88a302e161173e05b1c4103910d7366623\"\u003e\u003ccode\u003ed175bb8\u003c/code\u003e\u003c/a\u003e Use macos-14 for iOS arm64 simulator (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9258\"\u003e#9258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/592b2f820aa1f75f8ae8bf4f30e1b4bc62023535\"\u003e\u003ccode\u003e592b2f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Use macos-latest for iOS arm64 simulator\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5dddb2ce94a715e54442c1d30c9ffc04914d96fe\"\u003e\u003ccode\u003e5dddb2c\u003c/code\u003e\u003c/a\u003e Use enums for Modes and RawModes in C (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9256\"\u003e#9256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/e7b72a3bbdec4e3f4120e6b5fe4082d78315ff13\"\u003e\u003ccode\u003ee7b72a3\u003c/code\u003e\u003c/a\u003e Add ImageText (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9098\"\u003e#9098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/864d4b6e0937e9d468de26b933f31b1639e0f22a\"\u003e\u003ccode\u003e864d4b6\u003c/code\u003e\u003c/a\u003e Shift bits before making value negative (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9255\"\u003e#9255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/994a9def5d94bc59b60447bbab445834f7f9f9bf\"\u003e\u003ccode\u003e994a9de\u003c/code\u003e\u003c/a\u003e Install arro3 dependencies when type checking (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9254\"\u003e#9254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/d5e1601b32ea43b45ce8f820e4b349e9b5e2dd6c\"\u003e\u003ccode\u003ed5e1601\u003c/code\u003e\u003c/a\u003e Improved documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/e533ccccfcef79c031ac1178a9b78db2fb000a6f\"\u003e\u003ccode\u003ee533ccc\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into imagetext\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/95a85dc6693ca221643906214b0e1f4590986c0f\"\u003e\u003ccode\u003e95a85dc\u003c/code\u003e\u003c/a\u003e Use snake case\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.2.1...12.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.3.7 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix no-ctypes fallback on windows by \u003ca href=\"https://github.com/youknowone\"\u003e\u003ccode\u003e@​youknowone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/403\"\u003etox-dev/platformdirs#403\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.5.0...4.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/376\"\u003etox-dev/platformdirs#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/378\"\u003etox-dev/platformdirs#378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/379\"\u003etox-dev/platformdirs#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/381\"\u003etox-dev/platformdirs#381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/382\"\u003etox-dev/platformdirs#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/383\"\u003etox-dev/platformdirs#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Windows file paths in README by \u003ca href=\"https://github.com/ParadaCarleton\"\u003e\u003ccode\u003e@​ParadaCarleton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/385\"\u003etox-dev/platformdirs#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/384\"\u003etox-dev/platformdirs#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/387\"\u003etox-dev/platformdirs#387\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 6 to 7 in the all group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/388\"\u003etox-dev/platformdirs#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop 3.9 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/389\"\u003etox-dev/platformdirs#389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ParadaCarleton\"\u003e\u003ccode\u003e@​ParadaCarleton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/385\"\u003etox-dev/platformdirs#385\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0\u003c/a\u003e\u003c/p\u003e\n\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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/e4dbdb8c8ed8e448b7cdbbdce4a4ff5c54c5d685\"\u003e\u003ccode\u003ee4dbdb8\u003c/code\u003e\u003c/a\u003e Fix no-ctypes fallback on windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/4cc78aa59bbfa63a993213794f218dac327cf625\"\u003e\u003ccode\u003e4cc78aa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/b624d78851775551b6285c2759cb49325548459b\"\u003e\u003ccode\u003eb624d78\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/eb06e7ed58b52ef3876a24393c6235e3928443ec\"\u003e\u003ccode\u003eeb06e7e\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/85efbe91422e0b0df64f646dbfe9adb0dff07ed1\"\u003e\u003ccode\u003e85efbe9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/704c603bd3299283b2132f6b4d27daaa4fa2acbf\"\u003e\u003ccode\u003e704c603\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a01817810d92510cfa9cb9e51e7f38094e2fd9b9\"\u003e\u003ccode\u003ea018178\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/9920b9bd6b1752d4b1420a3237385dcd3a6ea840\"\u003e\u003ccode\u003e9920b9b\u003c/code\u003e\u003c/a\u003e Bump the all group with 2 updates (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c80472486f4939b795f8552f6b4e629c3db1f538\"\u003e\u003ccode\u003ec804724\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a6a24895db89fe81d8863ca25d1ebeb101fce80b\"\u003e\u003ccode\u003ea6a2489\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 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/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\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 \u003ccode\u003eCliRunner\u003c/code\u003e. :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.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.2.1...8.3.1\"\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.5.1\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.5.1\u003c/h2\u003e\n\u003ch2\u003e4.5.1\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.5.0...0631dcf3bc4333594a02ee975f00c37a937591f5\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eDeprecated features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrives: Deprecate the notion of defaultContentProvider \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18169\"\u003e#18169\u003c/a\u003e (\u003ca href=\"https://github.com/martinRenou\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect and log slow plugins \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18181\"\u003e#18181\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\u003eDebugger: Fix restart and debug command. \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18115\"\u003e#18115\u003c/a\u003e (\u003ca href=\"https://github.com/HaudinFlorence\"\u003e\u003ccode\u003e@​HaudinFlorence\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003escrollPastEnd\u003c/code\u003e for text editors \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18186\"\u003e#18186\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\u003eEnable undo/redo in JSON settings editor \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18165\"\u003e#18165\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\u003eRestore focus after closing the command palette \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18167\"\u003e#18167\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\u003eRestore auto-resizing of the code console input prompts \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17819\"\u003e#17819\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Safely handle missing args in fileeditor:change-font-size label provider \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18157\"\u003e#18157\u003c/a\u003e (\u003ca href=\"https://github.com/prajyot-porje\"\u003e\u003ccode\u003e@​prajyot-porje\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\u003eCheck if the list of commands, tokens and plugins has changed \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18198\"\u003e#18198\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate to Playwright 1.57.0 \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18151\"\u003e#18151\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReconfigure 4.5.x branch \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/18161\"\u003e#18161\u003c/a\u003e (\u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\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\u003eThe following people contributed discussions, new ideas, code and documentation contributions, and review.\nSee \u003ca href=\"https://github-activity.readthedocs.io/en/latest/#how-does-this-tool-define-contributions-in-the-reports\"\u003eour definition of contributors\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-11-18\u0026amp;to=2025-12-15\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/FoSuCloud\"\u003e\u003ccode\u003e@​FoSuCloud\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AFoSuCloud+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/HaudinFlorence\"\u003e\u003ccode\u003e@​HaudinFlorence\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AHaudinFlorence+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aianthomas23+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jasongrout\"\u003e\u003ccode\u003e@​jasongrout\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajasongrout+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/jtpio\"\u003e\u003ccode\u003e@​jtpio\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/krassowski\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/martinRenou\"\u003e\u003ccode\u003e@​martinRenou\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/meeseeksmachine\"\u003e\u003ccode\u003e@​meeseeksmachine\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Meriem-BenIsmail\"\u003e\u003ccode\u003e@​Meriem-BenIsmail\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMeriem-BenIsmail+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/prajyot-porje\"\u003e\u003ccode\u003e@​prajyot-porje\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aprajyot-porje+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/xc2\"\u003e\u003ccode\u003e@​xc2\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Axc2+updated%3A2025-11-18..2025-12-15\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003e4.5.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/jupyterlab/jupyterlab/compare/v4.4.1...05df0d2487691b9bbf9d5e606238702152c3c634\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eNew features added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd terminal search functionality \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/pull/17691\"\u003e#17691\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/b26069443d4dffb4ae7e1f65b5aa3647fdad9e72\"\u003e\u003ccode\u003eb260694\u003c/code\u003e\u003c/a\u003e [ci skip] Publish 4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/0631dcf3bc4333594a02ee975f00c37a937591f5\"\u003e\u003ccode\u003e0631dcf\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18181\"\u003e#18181\u003c/a\u003e: Detect and log slow plugins (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18212\"\u003e#18212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/90154e1f0d1acbd9bb7c811626ad6af42c978429\"\u003e\u003ccode\u003e90154e1\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18198\"\u003e#18198\u003c/a\u003e: Check if the list of commands, tokens and plugins has cha...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/7e59a10b7b56e27a419ccff6a9435a6c54a3f004\"\u003e\u003ccode\u003e7e59a10\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18157\"\u003e#18157\u003c/a\u003e: Fix: Safely handle missing args in fileeditor:change-font...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/67ca4986ad5608cd2089cb257ce0e62a87576f02\"\u003e\u003ccode\u003e67ca498\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18115\"\u003e#18115\u003c/a\u003e: Debugger: Fix restart and debug command. (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18200\"\u003e#18200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/3b2ae56ec8f96471e8864f6278ebaf172750bb5a\"\u003e\u003ccode\u003e3b2ae56\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18186\"\u003e#18186\u003c/a\u003e: Fix \u003ccode\u003escrollPastEnd\u003c/code\u003e for text editors (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18197\"\u003e#18197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/4318162eb4127acabb523c5e1295630bd0ef905e\"\u003e\u003ccode\u003e4318162\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18169\"\u003e#18169\u003c/a\u003e: Drives: Deprecate the notion of defaultContentProvider (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/32a36a233a0f4f4f87a4484a399365a867f6b333\"\u003e\u003ccode\u003e32a36a2\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18165\"\u003e#18165\u003c/a\u003e: Enable undo/redo in JSON settings editor (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18187\"\u003e#18187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/a0572e602296fe3d89f77980ce20576369d484d4\"\u003e\u003ccode\u003ea0572e6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18167\"\u003e#18167\u003c/a\u003e: Restore focus after closing the command palette (\u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/18172\"\u003e#18172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jupyterlab/jupyterlab/commit/3b5cccabca22ac96e5e1db98625474a97c7f70ed\"\u003e\u003ccode\u003e3b5ccca\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/jupyterlab/jupyterlab/issues/17819\"\u003e#17819\u003c/a\u003e: Restore auto-resizing of the code console input prompts (...\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.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.15.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.15.0...v1.19.1\"\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.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-lsp-server[rope]` from 1.13.1 to 1.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-lsp/python-lsp-server/releases\"\u003epython-lsp-server[rope]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.14.0\u003c/h2\u003e\n\u003cp\u003eMinor release with the following new features and changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epylsp.signature.include_docstring\u003c/code\u003e option to hide docstring in signatures.\u003c/li\u003e\n\u003cli\u003eAdd support for Pylint 4.\u003c/li\u003e\n\u003cli\u003eFix support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.13.2\u003c/h2\u003e\n\u003cp\u003eThis is a minor bugfix release that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrevents showing \u003ccode\u003ecmd\u003c/code\u003e terminals on Windows when running Flake8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-lsp/python-lsp-server/blob/develop/CHANGELOG.md\"\u003epython-lsp-server[rope]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.14.0 (2025/12/06)\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epylsp.signature.include_docstring\u003c/code\u003e to hide docstring in signatures.\u003c/li\u003e\n\u003cli\u003eAdd suppor...\n\n_Description has been truncated_","html_url":"https://github.com/dbinfrago/py-capellambse/pull/616","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbinfrago%2Fpy-capellambse/issues/616","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/616/packages"}},{"old_version":"6.1.0","new_version":"6.2.0","update_type":"minor","path":null,"pr_created_at":"2025-12-16T09:44:13.000Z","version_change":"6.1.0 → 6.2.0","issue":{"uuid":"3734010539","node_id":"PR_kwDOLUtxJc65HLqF","number":106,"state":"closed","title":"Bump the poetry-dependencies group across 1 directory with 45 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-16T10:28:55.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-16T09:44:13.000Z","updated_at":"2025-12-16T10:28:57.000Z","time_to_close":2682,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"poetry-dependencies","update_count":45,"packages":[{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"black","old_version":"25.9.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.7","new_version":"7.13.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.13.2","new_version":"0.14.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"sphinx-click","old_version":"6.1.0","new_version":"6.2.0","repository_url":"https://github.com/click-contrib/sphinx-click"},{"name":"deptry","old_version":"0.23.1","new_version":"0.24.0","repository_url":"https://github.com/fpgmaas/deptry"},{"name":"jupytext","old_version":"1.17.3","new_version":"1.18.1","repository_url":"https://github.com/mwouts/jupytext"},{"name":"ipykernel","old_version":"6.30.1","new_version":"6.31.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"statsmodels","old_version":"0.14.5","new_version":"0.14.6","repository_url":"https://github.com/statsmodels/statsmodels"},{"name":"pandas-stubs","old_version":"2.3.2.250926","new_version":"2.3.3.251201","repository_url":"https://github.com/pandas-dev/pandas-stubs"},{"name":"anyio","old_version":"4.11.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"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.14.2","new_version":"4.14.3"},{"name":"certifi","old_version":"2025.8.3","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.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"debugpy","old_version":"1.8.17","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"exceptiongroup","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.14","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.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jupyter-client","old_version":"8.6.3","new_version":"8.7.0","repository_url":"https://github.com/jupyter/jupyter_client"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"patsy","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/pydata/patsy"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"psutil","old_version":"7.1.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.18.16"},{"name":"ruamel-yaml-clib","old_version":"0.2.14","new_version":"0.2.15"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"tornado","old_version":"6.5.2","new_version":"6.5.4","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"types-pytz","old_version":"2025.2.0.20250809","new_version":"2025.2.0.20251108","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"},{"name":"watchfiles","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/samuelcolvin/watchfiles"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry-dependencies group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [black](https://github.com/psf/black) | `25.9.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.13.0` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.2` | `0.14.9` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.1.0` | `6.2.0` |\n| [deptry](https://github.com/fpgmaas/deptry) | `0.23.1` | `0.24.0` |\n| [jupytext](https://github.com/mwouts/jupytext) | `1.17.3` | `1.18.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `6.31.0` |\n| [statsmodels](https://github.com/statsmodels/statsmodels) | `0.14.5` | `0.14.6` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.2.250926` | `2.3.3.251201` |\n| [anyio](https://github.com/agronholm/anyio) | `4.11.0` | `4.12.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.14.2` | `4.14.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `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.3` | `3.4.4` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.17` | `1.8.19` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.3.0` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.1` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.14` | `2.6.15` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.6.3` | `8.7.0` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [patsy](https://github.com/pydata/patsy) | `1.0.1` | `1.0.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.1.3` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.18.16` |\n| ruamel-yaml-clib | `0.2.14` | `0.2.15` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.2` | `6.5.4` |\n| [types-pytz](https://github.com/typeshed-internal/stub_uploader) | `2025.2.0.20250809` | `2025.2.0.20251108` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.38.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |\n\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 `black` from 25.9.0 to 25.12.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.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\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.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\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/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.9.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.13.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e\u003cem\u003e.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\n\u003ccode\u003eHenry Schreiner \u0026lt;pull 2100_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated: when coverage.py is installed, it creates three command entry\npoints: \u003ccode\u003ecoverage\u003c/code\u003e, \u003ccode\u003ecoverage3\u003c/code\u003e, and \u003ccode\u003ecoverage-3.10\u003c/code\u003e (if installed for\nPython 3.10). The second and third of these are not needed and will\neventually be removed. They still work for now, but print a message about\ntheir deprecation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1643: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1643\"\u003ecoveragepy/coveragepy#1643\u003c/a\u003e\n.. _pull 1952: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/1952\"\u003ecoveragepy/coveragepy#1952\u003c/a\u003e\n.. _pull 2100: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2100\"\u003ecoveragepy/coveragepy#2100\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-1b1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.1b1 — 2025-11-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: coverage.py now includes a permanent .pth file in the distribution which\nis installed with the code. This fixes \u003ccode\u003eissue 2084\u003c/code\u003e_: failure to patch for\nsubprocess measurement when site-packages is not writable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2084: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2084\"\u003ecoveragepy/coveragepy#2084\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-12-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.12.0 — 2025-11-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now shows separate coverage totals for statements and\nbranches, as well as the usual combined coverage percentage. Thanks to Ryuta\nOtsuka for the \u003ccode\u003ediscussion \u0026lt;issue 2081_\u0026gt;\u003c/code\u003e_ and the \u003ccode\u003eimplementation \u0026lt;pull 2085_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe JSON report now includes separate coverage totals for statements and\nbranches, thanks to \u003ccode\u003eRyuta Otsuka \u0026lt;pull 2090_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eexcept*\u003c/code\u003e clauses were not handled properly under the \u0026quot;sysmon\u0026quot;\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/coveragepy/coveragepy/commit/52fde9c828b5d1d17d2d49589a65bd2644402863\"\u003e\u003ccode\u003e52fde9c\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/69de0097f1ec77781bcd489bb9adb493a7db56a1\"\u003e\u003ccode\u003e69de009\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/01387fc66199f5bd885143c6ff1de55e587adefa\"\u003e\u003ccode\u003e01387fc\u003c/code\u003e\u003c/a\u003e docs: tweak changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/60206e8f8da2796a9472e214b003d42adcebd782\"\u003e\u003ccode\u003e60206e8\u003c/code\u003e\u003c/a\u003e chore: make edit_for_release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/78cfd57fe534bac8fd84b1b58b7a7e7a39f07974\"\u003e\u003ccode\u003e78cfd57\u003c/code\u003e\u003c/a\u003e docs: tweak CHANGES.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/21e726fcfbb5282bf9f72f44c764dd7bcfb7d9d4\"\u003e\u003ccode\u003e21e726f\u003c/code\u003e\u003c/a\u003e feat: support \u003ccode\u003e.coveragerc.toml\u003c/code\u003e for configuration (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1952\"\u003e#1952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3914e5055f44e17e5753a7643fc0cefcc948bb2d\"\u003e\u003ccode\u003e3914e50\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2102\"\u003e#2102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/d5e7c3ad0d557de2aff73d33a59f31a80b36ba6c\"\u003e\u003ccode\u003ed5e7c3a\u003c/code\u003e\u003c/a\u003e test: no need to group tests by needs_pth\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ed516c4a6568017d7e36cdcfb007b904687fda59\"\u003e\u003ccode\u003eed516c4\u003c/code\u003e\u003c/a\u003e test: fix metacov again\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/da833a18b7670c2df84ab437b72560b627610063\"\u003e\u003ccode\u003eda833a1\u003c/code\u003e\u003c/a\u003e fix: use Development Status classifier properly. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2101\"\u003e#2101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.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.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\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\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\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\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/1af6c8fa9502336c6977c2ff3e79185bd97a6e57\"\u003e\u003ccode\u003e1af6c8f\u003c/code\u003e\u003c/a\u003e v4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/3358a3b54077cd8c8c99618aed003b771a21cb65\"\u003e\u003ccode\u003e3358a3b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e from pre-commit/hazmat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/bdf68790b78158268bbc8482f76491a61d75809a\"\u003e\u003ccode\u003ebdf6879\u003c/code\u003e\u003c/a\u003e add pre-commit hazmat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/e436690f140cbbe1d0f359654edf3ab9ecb8da2d\"\u003e\u003ccode\u003ee436690\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3584\"\u003e#3584\u003c/a\u003e from pre-commit/exitstack\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8d34f95308fc4c14dea3d3e90153acfdaf55e2de\"\u003e\u003ccode\u003e8d34f95\u003c/code\u003e\u003c/a\u003e use ExitStack instead of start + stop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/9c7ea88ab95cb063cb0f0b74f395ff7b9cdbe0c5\"\u003e\u003ccode\u003e9c7ea88\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3583\"\u003e#3583\u003c/a\u003e from pre-commit/forward-compat-map-manifest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/844dacc168d68a32553ecf8a99178ab395fdb11e\"\u003e\u003ccode\u003e844dacc\u003c/code\u003e\u003c/a\u003e add forward-compat error message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6a1d543e523a02bbaad43da7df594cedff242abd\"\u003e\u003ccode\u003e6a1d543\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3582\"\u003e#3582\u003c/a\u003e from pre-commit/move-gc-back\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/66278a9a0b69a69fde820d2b85a7e198eae52981\"\u003e\u003ccode\u003e66278a9\u003c/code\u003e\u003c/a\u003e move logic for gc back to commands.gc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/1b32c50bc7e2f6b603b7ce26ecdf67c9c9dee3c6\"\u003e\u003ccode\u003e1b32c50\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3579\"\u003e#3579\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/compare/v4.3.0...v4.5.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.2 to 0.14.9\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.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-11.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New \u003ccode\u003eRUF100\u003c/code\u003e diagnostics for unused range suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21783\"\u003e#21783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Detect subclasses of builtin exceptions (\u003ccode\u003ePLW0133\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21382\"\u003e#21382\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix comment placement in lambda parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21868\"\u003e#21868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip over trivia tokens after re-lexing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21895\"\u003e#21895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix false positive when using non-standard \u003ccode\u003eCSafeLoader\u003c/code\u003e path (S506). (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21830\"\u003e#21830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Accept immutable slice default arguments (\u003ccode\u003eB008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21823\"\u003e#21823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Suppress \u003ccode\u003eD417\u003c/code\u003e for parameters with \u003ccode\u003eUnpack\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21816\"\u003e#21816\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ememchr\u003c/code\u003e for computing line indexes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21838\"\u003e#21838\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument \u003ccode\u003e*.pyw\u003c/code\u003e is included by default in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21885\"\u003e#21885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument range suppressions, reorganize suppression docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21884\"\u003e#21884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate mkdocs-material to 9.7.0 (Insiders now free) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21797\"\u003e#21797\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/Avasam\"\u003e\u003ccode\u003e@​Avasam\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/phongddo\"\u003e\u003ccode\u003e@​phongddo\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/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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/LoicRiegel\"\u003e\u003ccode\u003e@​LoicRiegel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.9\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.14.9/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-11.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New \u003ccode\u003eRUF100\u003c/code\u003e diagnostics for unused range suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21783\"\u003e#21783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Detect subclasses of builtin exceptions (\u003ccode\u003ePLW0133\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21382\"\u003e#21382\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix comment placement in lambda parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21868\"\u003e#21868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip over trivia tokens after re-lexing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21895\"\u003e#21895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix false positive when using non-standard \u003ccode\u003eCSafeLoader\u003c/code\u003e path (S506). (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21830\"\u003e#21830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Accept immutable slice default arguments (\u003ccode\u003eB008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21823\"\u003e#21823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Suppress \u003ccode\u003eD417\u003c/code\u003e for parameters with \u003ccode\u003eUnpack\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21816\"\u003e#21816\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ememchr\u003c/code\u003e for computing line indexes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21838\"\u003e#21838\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument \u003ccode\u003e*.pyw\u003c/code\u003e is included by default in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21885\"\u003e#21885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument range suppressions, reorganize suppression docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21884\"\u003e#21884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate mkdocs-material to 9.7.0 (Insiders now free) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21797\"\u003e#21797\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/Avasam\"\u003e\u003ccode\u003e@​Avasam\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\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/phongddo\"\u003e\u003ccode\u003e@​phongddo\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/mahiro72\"\u003e\u003ccode\u003e@​mahiro72\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/LoicRiegel\"\u003e\u003ccode\u003e@​LoicRiegel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.14.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-12-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Catch \u003ccode\u003eyield\u003c/code\u003e expressions within other statements (\u003ccode\u003eB901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21200\"\u003e#21200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark fixes unsafe for return type changes (\u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH109\u003c/code\u003e, \u003ccode\u003ePTH115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21440\"\u003e#21440\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/3f63ea4b504d50eaf3c479de68e4017d2434a160\"\u003e\u003ccode\u003e3f63ea4\u003c/code\u003e\u003c/a\u003e Prepare 0.14.9 release (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21927\"\u003e#21927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c8851ecf704c1e989c5b840e2d53ac24210b4aec\"\u003e\u003ccode\u003ec8851ec\u003c/code\u003e\u003c/a\u003e [ty] Defer all parameter and return type annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21906\"\u003e#21906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d442433e93840edc47f77ab10a85ebfbcb18211b\"\u003e\u003ccode\u003ed442433\u003c/code\u003e\u003c/a\u003e [ty] Fix workspace symbols to return members too (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21926\"\u003e#21926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c055d665ef4bbf4002a8c07bdf9b9e76c065a26b\"\u003e\u003ccode\u003ec055d66\u003c/code\u003e\u003c/a\u003e Document range suppressions, reorganize suppression docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21884\"\u003e#21884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7a578ce8334d4a1e75f91b1c600fa035f0469bed\"\u003e\u003ccode\u003e7a578ce\u003c/code\u003e\u003c/a\u003e Ignore ruff:isort like ruff:noqa in new suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21922\"\u003e#21922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/34f7a04ef7ecb620658038c1db62a4204eb85388\"\u003e\u003ccode\u003e34f7a04\u003c/code\u003e\u003c/a\u003e [ty] Handle \u003ccode\u003eDefinition\u003c/code\u003es in \u003ccode\u003eSemanticModel::scope\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21919\"\u003e#21919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c9fe4e2703365b868a3b08364bf9673cef36f13f\"\u003e\u003ccode\u003ec9fe4e2\u003c/code\u003e\u003c/a\u003e [ty] Attach salsa db when running ide tests for easier debugging (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21917\"\u003e#21917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/fbeeb050af15a96cec59d5e6d7e9a166579b3433\"\u003e\u003ccode\u003efbeeb05\u003c/code\u003e\u003c/a\u003e [ty] Don't show hover for expressions with no inferred type (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21924\"\u003e#21924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4fdb4e8219bf8e7b8001121dd61a7c3678200bbf\"\u003e\u003ccode\u003e4fdb4e8\u003c/code\u003e\u003c/a\u003e [ty] avoid unions of generic aliases of the same class in fixpoint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21909\"\u003e#21909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c548ef20278f18ec9e88796fd0a1c4b5b5395a40\"\u003e\u003ccode\u003ec548ef2\u003c/code\u003e\u003c/a\u003e [ty] Squash false positive logs for failing to find \u003ccode\u003ebuiltins\u003c/code\u003e as a real module\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.2...0.14.9\"\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.2 to 9.0.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\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\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/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\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/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\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/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/e8eb75e292ff6df69230420d992a34e68a7385d0\"\u003e\u003ccode\u003ee8eb75e\u003c/code\u003e\u003c/a\u003e add release notes with reno\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/46f6445bb67c76f2a4b638f4003862ee85dafba1\"\u003e\u003ccode\u003e46f6445\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/722f4217c1bf6dfd68f9e2c26aa52d590973b11e\"\u003e\u003ccode\u003e722f421\u003c/code\u003e\u003c/a\u003e print \u0026quot;Usage\u0026quot; before printing the command usage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/ebc38179a0229435becdd64026fa88be7ab2d60c\"\u003e\u003ccode\u003eebc3817\u003c/code\u003e\u003c/a\u003e Fix readthedocs build (redux)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/9ee09f9d3252fd6e8bce9578eca82411e89c76e5\"\u003e\u003ccode\u003e9ee09f9\u003c/code\u003e\u003c/a\u003e Fix readthedocs build\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.1.0...6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `deptry` from 0.23.1 to 0.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fpgmaas/deptry/releases\"\u003edeptry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/blob/main/CHANGELOG.md\"\u003edeptry's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.24.0 - 2025-11-09\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003ch4\u003ePython 3.9 support dropped\u003c/h4\u003e\n\u003cp\u003eSupport for Python 3.9 has been dropped, as it has reached its end of life.\u003c/p\u003e\n\u003ch4\u003ePyPy 3.10 support dropped, 3.11 added\u003c/h4\u003e\n\u003cp\u003eSupport for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd GitHub Actions annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1328\"\u003e#1328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePublish wheels for PyPy 3.11 and drop 3.10 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFull Changelog\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ehttps://github.com/fpgmaas/deptry/compare/0.23.1...0.24.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/fpgmaas/deptry/commit/4cc2d65ce1343957c911ca45709d6080cb9f82c3\"\u003e\u003ccode\u003e4cc2d65\u003c/code\u003e\u003c/a\u003e docs(changelog): add 0.24.0 release notes (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/8757b318e9974bbfa7ec65dabf999bc935ac026f\"\u003e\u003ccode\u003e8757b31\u003c/code\u003e\u003c/a\u003e chore: sync all dependency groups by default and run mypy locally (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1337\"\u003e#1337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/5ebc5c066831dd3dfeef7e79a4ae4f5934d744b9\"\u003e\u003ccode\u003e5ebc5c0\u003c/code\u003e\u003c/a\u003e feat: add github annotations reporter (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/aa59b6fa66bd3468ad681317de14189606a9c04e\"\u003e\u003ccode\u003eaa59b6f\u003c/code\u003e\u003c/a\u003e fix(deps): update ruff rust to v0.14.4 (patch) (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/87a6b87428641bc7cab3b22d00d788e28ed86ae9\"\u003e\u003ccode\u003e87a6b87\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b938ae73633b1a1f46e3888c9673b49d5e9dd60\"\u003e\u003ccode\u003e6b938ae\u003c/code\u003e\u003c/a\u003e chore(deps): update uv-version to v0.9.8 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/92c35bab5ad0a11d2becc31e4cdbe4413a746233\"\u003e\u003ccode\u003e92c35ba\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook woodruffw/zizmor-pre-commit to v1.16.3 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/a8be2902812426acaf00ff344dc93a48f30d48d7\"\u003e\u003ccode\u003ea8be290\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1332\"\u003e#1332\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6abefd1237071ba0e8d3fc1c9e02a402ccde11f6\"\u003e\u003ccode\u003e6abefd1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mkdocs-material to v9.6.23 (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1331\"\u003e#1331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fpgmaas/deptry/commit/6b556861d72024d1f8b5f8c8ead9d1b48cef0f9e\"\u003e\u003ccode\u003e6b55686\u003c/code\u003e\u003c/a\u003e test: update all test dependencies (\u003ca href=\"https://redirect.github.com/fpgmaas/deptry/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jupytext` from 1.17.3 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mwouts/jupytext/releases\"\u003ejupytext's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.18.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test \u003ccode\u003etest_check_source_is_newer_when_using_jupytext_sync\u003c/code\u003e to work reliably on systems with low filesystem timestamp resolution (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1460\"\u003e#1460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eChanged\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe now use \u003ccode\u003epixi\u003c/code\u003e to maintain the local Python environments used for developing and testing Jupytext.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.18.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAdded\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe documentation has a chapter on the \u003ca href=\"https://jupytext.readthedocs.io/en/latest/vs-code.html\"\u003eJupytext Sync\u003c/a\u003e extension for VS Code (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWe have added a new option \u003ccode\u003e--check-source-is-newer\u003c/code\u003e to the Jupytext CLI. Use this option if you want to make sure that the file passed as argument to Jupytext is the newest of all paired files, and/or newer than the destination file.\u003c/li\u003e\n\u003cli\u003eWe have added a section on \u003ca href=\"https://jupytext.readthedocs.io/en/latest/jupyter-collaboration.html\"\u003eJupyter Collaboration\u003c/a\u003e which also provides a very useful autoreload functionality (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/406\"\u003e#406\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePairing groups allow you to define different pairing configurations for specific subsets of notebooks. The \u003ccode\u003eformats\u003c/code\u003e configuration option now supports a list of format dictionaries for first-match pairing. Use \u003ccode\u003e[[formats]]\u003c/code\u003e sections in your TOML configuration to define multiple format specifications, where the first matching format is used. This allows applying different pairing rules to notebooks in different locations, such as generating documentation markdown files only for tutorial notebooks (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWe have added more tests to document the complex pairing formats, which also work on Windows (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1028\"\u003e#1028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePairing into nested folders was fixed on Windows (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1028\"\u003e#1028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJupytext is now tested with Python 3.14 (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe Jupytext CLI now detects if a file it has read or consulted has been modified while it was processing it. That can happen in the context of the \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=caenrigen.jupytext-sync\"\u003eJupytext Sync\u003c/a\u003e extension for VS Code (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1411\"\u003e#1411\u003c/a\u003e, [vscode-jupytext-sync-\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/12\"\u003e#12\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/caenrigen/vscode-jupytext-sync/issues/12\"\u003ecaenrigen/vscode-jupytext-sync#12\u003c/a\u003e)). When such a synchronous modification is detected, Jupytext now raises an error. Many thanks to \u003ca href=\"https://github.com/aarchiba\"\u003eAnne Archibald\u003c/a\u003e for reporting the issue and preparing an inspiring PR (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/pull/1417\"\u003e#1417\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eWe don't import \u003ccode\u003enotebook\u003c/code\u003e when \u003ccode\u003ejupyter_server\u003c/code\u003e is available (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1436\"\u003e#1436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJupytext now supports more characters in the cell metadata keys, to improve compatibility with \u003ccode\u003ejupyterlab-slideshow\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1441\"\u003e#1441\u003c/a\u003e). Thanks to \u003ca href=\"https://github.com/nthiery\"\u003eNicolas Thierry\u003c/a\u003e for this fix.\u003c/li\u003e\n\u003cli\u003eThe function \u003ccode\u003efind_jupytext_configuration_file\u003c/code\u003e now works with relative directories (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1440\"\u003e#1440\u003c/a\u003e). This fix was contributed by \u003ca href=\"https://github.com/parmentelat\"\u003eThierry Parmentelat\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eWe have fixed a parsing error for R Markdown files (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWe have fixed a parsing error when the first cell of the notebook contains a YAML header that is not a dict (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1444\"\u003e#1444\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eChanged\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe have updated the pre-commit hooks. The code is now formatted using \u003ccode\u003eruff format\u003c/code\u003e, and updated for Python 3.9+ using \u003ca href=\"https://github.com/asottile/pyupgrade\"\u003ehttps://github.com/asottile/pyupgrade\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.18.0rc0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAdded\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe documentation has a chapter on the \u003ca href=\"https://jupytext.readthedocs.io/en/latest/vs-code.html\"\u003eJupytext Sync\u003c/a\u003e extension for VS Code (\u003ca href=\"https://redirect.github.com/mwouts/jupytext/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWe have added a new option \u003ccode\u003e--check-source-is-newer\u003c/code\u003e to the Jupytext CLI. Use this option if you want to make sure that the file passed as argument to Jupytext is the newest of all paired files, and/or newer than the destination file.\u003c/li\u003e\n\u003cli\u003eWe have added a section on \u003ca href=\"https://jupytext.readthedocs.io/en/latest/jupyter-collaboration.html\"\u003eJupyter Collaboration\u003c/a\u003e which also provides a very useful autoreload functionality (\u003ca href=\"https://redirect.gi...\n\n_Description has been truncated_","html_url":"https://github.com/statisticsnorway/ssb-statstruk/pull/106","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-statstruk/issues/106","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/106/packages"}}]}